Make pkgdb_sync more resilient by always calling SETUP_PACKAGE if master does not exist

This should make it recover in case there are any repos in a weird state (aka, no master branch).
This could for example happen if the package was created in pkgdb after pkgdb_sync ran, but before
genacls.pkgdb runs, because then gitolite will see it as a new repo, and create a totally blank repo.
Especially since pkgdb_sync will abort after the first error, it would then leave all later created
repos broken as well.

Calling setup_git_package in a repo without master branch has no ill effect:
- Running git init on a pre-initialized repo is a no-op (or at least doesn't destroy current git data)
- Since it doesn't have master, it didn't run the script, so adding the first commit and hooks etc are
  what we want the script to do

Signed-off-by: Patrick Uiterwijk <puiterwijk@redhat.com>
This commit is contained in:
Patrick Uiterwijk 2015-02-27 08:44:57 +00:00
parent 87d4c994c2
commit 6bb938abfe

View file

@ -187,7 +187,7 @@ def branch_package(pkgname, branches):
# Create the devel branch if necessary
if not os.path.exists(
os.path.join(GIT_FOLDER, '%s.git' % pkgname)):
os.path.join(GIT_FOLDER, '%s.git/refs/heads/master' % pkgname)):
_invoke(SETUP_PACKAGE, [pkgname])
if 'master' in branches:
branches.remove('master') # SETUP_PACKAGE creates master