1
0
mirror of https://github.com/IEEE-SB-Passau/pelican-deployment-system.git synced 2017-09-06 16:35:38 +02:00

Revert "rework submodule updating, they suck really!"

The manual submodule recursing most likely does not work any better

This reverts commit df8b8e915b.
This commit is contained in:
2016-10-17 16:57:20 +02:00
parent 2afa0cec72
commit f19d8a82f8
2 changed files with 6 additions and 31 deletions

View File

@@ -181,9 +181,11 @@ class DeploymentRunner:
def _update_build_repo_submodules(self, repo):
log.info("%s build_repo: update submodules", self.name)
results = repo.submodule_sync_update_init_recursive_force()
for r in results:
log_git(r)
# we must update the urls if changed!
result = repo.submodule("sync", "--recursive")
log_git(result)
result = repo.submodule("update", "--init", "--force", "--recursive")
log_git(result)
def build(self, abort_running=False, wait=False, ignore_pull_error=False,
build_fn=None):

View File

@@ -15,7 +15,7 @@
import os
import errno
import shlex
from collections import namedtuple, deque
from collections import namedtuple
from subprocess import Popen, PIPE
CmdResult = namedtuple("CmdResult", "cmd status stdout stderr")
@@ -69,33 +69,6 @@ class Repo:
res = self.config("--get", key)
return res.stdout.rstrip("\r\n")
def submodule_sync_update_init_recursive_force(self):
results = []
todo = deque()
todo.extend(self._get_submod_paths())
while todo:
curr = todo.popleft()
if not os.path.exists(os.path.join(self.repo_dir, curr)):
continue # that happens, strangely...
results.append(self.cmd(self.git_cmd, "-C", curr,
"submodule", "sync"))
results.append(self.cmd(self.git_cmd, "-C", curr,
"submodule", "update", "--init", "--force"))
todo.extend(os.path.join(curr, p) for p in
self._get_submod_paths(curr))
return results
def _get_submod_paths(self, submod="."):
if not os.path.exists(os.path.join(self.repo_dir, submod,
".gitmodules")):
return ()
result = self.cmd(self.git_cmd, "-C", submod, "config", "--file",
".gitmodules", "--get-regexp", "submodule\..*\.path")
return tuple(p.split(maxsplit=1)[1] for p in result.stdout.splitlines())
def log_git_result(result, out_logger=None, err_logger=None, status_logger=None):
if status_logger:
err_logger('%s exit status: %s', result.cmd, result.status)