On Fri, Feb 27, 2015 at 03:54:22AM -0500, Patrick Uiterwijk wrote:
Any +1s? Explanation in the commit message.
Note: we should work on improving the script in general, but that is not something we should consider pushing during freeze, so this is a patch that hopefully gets us through the freeze.
commit 2d98b6748663747698cd6a0bfc23d05bbc371a01 Author: Patrick Uiterwijk puiterwijk@redhat.com Date: Fri Feb 27 08:44:57 2015 +0000
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>
diff --git a/roles/distgit/templates/pkgdb_sync_git_branches.py b/roles/distgit/templates/pkgdb_sync_git_branches.py index ced139b..8643165 100644 --- a/roles/distgit/templates/pkgdb_sync_git_branches.py +++ b/roles/distgit/templates/pkgdb_sync_git_branches.py @@ -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
+1 for me
Pierre