From 6bb938abfe939803bd466003a185f946c09ccfc5 Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: Fri, 27 Feb 2015 08:44:57 +0000 Subject: [PATCH] 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 --- roles/distgit/templates/pkgdb_sync_git_branches.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/distgit/templates/pkgdb_sync_git_branches.py b/roles/distgit/templates/pkgdb_sync_git_branches.py index ced139bc6d..8643165b71 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