diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 6ccb30d0..b348af1f 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -336,18 +336,18 @@ class vcs_git(vcs): def initsubmodules(self): self.checkrepo() - if subprocess.call(['git', 'submodule', 'update', - '--init', '--recursive'], - cwd=self.local) != 0: - raise VCSException("Git submodule update failed") - if subprocess.call(['git', 'submodule', 'foreach', + if subprocess.call(['git', 'submodule', 'foreach', '--recursive', 'git', 'reset', '--hard'], cwd=self.local) != 0: raise VCSException("Git submodule reset failed") - if subprocess.call(['git', 'submodule', 'foreach', + if subprocess.call(['git', 'submodule', 'foreach', '--recursive', 'git', 'clean', '-dffx'], cwd=self.local) != 0: raise VCSException("Git submodule clean failed") + if subprocess.call(['git', 'submodule', 'update', + '--init', '--force', '--recursive'], + cwd=self.local) != 0: + raise VCSException("Git submodule update failed") def gettags(self): self.checkrepo()