Freeze break request: Make setup_git_package also handle recreating the repo

Patrick Uiterwijk puiterwijk at gmail.com
Fri Feb 27 23:48:13 UTC 2015


>From 6e98a2dc667365633e47c63730feefc8d752886c Mon Sep 17 00:00:00 2001
From: Patrick Uiterwijk <puiterwijk at redhat.com>
Date: Fri, 27 Feb 2015 23:39:59 +0000
Subject: [PATCH] Fix setup_git_package to handle setting up after gitolite
setup a broken repo

setup_git_package did the same check as pkgdb_sync did [1].

Also, if gitolite already came by, it will have created an update hook,
which blocks us from pushing the initial commit (since gitolite has no idea
who we are).
So in that case, we will just remove the update hook: gitolite will
recreate it when it comes by the repo with genacls.sh.

The change to mkdir -p is just syntax to make it not print an error in case
the directory already existed.

[1]:
https://lists.fedoraproject.org/pipermail/infrastructure/2015-February/015600.html

Signed-off-by: Patrick Uiterwijk <puiterwijk at redhat.com>
---
 roles/distgit/files/setup_git_package |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/roles/distgit/files/setup_git_package
b/roles/distgit/files/setup_git_package
index b22b31f..67103ec 100644
--- a/roles/distgit/files/setup_git_package
+++ b/roles/distgit/files/setup_git_package
@@ -68,11 +68,17 @@ fi

 # Sanity checks before we start doing damage
 [ $VERBOSE -gt 1 ] && echo "Checking package $PACKAGE..."
-if [ -d $GITROOT/$PACKAGE.git ] ; then
+if [ -f $GITROOT/$PACKAGE.git/refs/heads/master ] ; then
     echo "ERROR: Package module $PACKAGE already exists!" >&2
     exit -1
 fi

+# A cleanup in case gitolite came by this repo
+if [ -f $GITROOT/$PACKAGE.git/hooks/update ] ; then
+    echo "Gitolite already initialized this repo. Will remove its hooks"
+    rm -f $GITROOT/$PACKAGE.git/hooks/update
+fi
+
 # "global" permissions check
 if [ ! -w $GITROOT ] ; then
     echo "ERROR: You can not write to $GITROOT"
@@ -85,7 +91,7 @@ fi
 TMPDIR=$(mktemp -d /tmp/tmpXXXXXX)

 # First create the master repo
-mkdir $GITROOT/$PACKAGE.git
+mkdir -p $GITROOT/$PACKAGE.git
 pushd $GITROOT/$PACKAGE.git >/dev/null
 git init -q --shared --bare
 echo "$PACKAGE" > description # This is used to figure out who to send
mail to.
-- 
1.7.2.1
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.fedoraproject.org/pipermail/infrastructure/attachments/20150228/0fe03fbd/attachment.html>


More information about the infrastructure mailing list