some repos like yum don't have a master
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Thu, 13 Oct 2011 16:43:20 +0000 (18:43 +0200)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Thu, 13 Oct 2011 16:43:20 +0000 (18:43 +0200)
scripts/git-mirror.sh

index 3ff06f5..1f2a5b9 100755 (executable)
@@ -105,10 +105,11 @@ function merge_all_branches () {
 
     pushd $REPO_DIR > /dev/null
     BRANCHES=$(git branch -r | grep $REMOTE | grep -v HEAD | sed "s/.*\///g" | grep -v master)
+    HAS_MASTER=$(git branch -l | grep master)
     popd > /dev/null
 
-    run ${REPO_DIR} git checkout master
-    run ${REPO_DIR} git merge --ff $REMOTE/master
+    [ -n "$HAS_MASTER" ] && run ${REPO_DIR} git checkout master
+    [ -n "$HAS_MASTER" ] && run ${REPO_DIR} git merge --ff $REMOTE/master
     for BRANCH in $BRANCHES ; do
         run -i ${REPO_DIR} git branch $BRANCH $REMOTE/$BRANCH
         run ${REPO_DIR} git checkout $BRANCH
@@ -124,9 +125,10 @@ function push_all_branches () {
 
     pushd $REPO_DIR > /dev/null
     BRANCHES=$(git branch -r | grep $PUSH_FROM | grep -v HEAD | sed "s/.*\///g" | grep -v master)
+    HAS_MASTER=$(git branch -l | grep master)
     popd > /dev/null
 
-    run ${REPO_DIR} git push $PUSH_TO master:master
+    [ -n "$HAS_MASTER" ] && run ${REPO_DIR} git push $PUSH_TO master:master
     for BRANCH in $BRANCHES ; do
         run ${REPO_DIR} git push $PUSH_TO $BRANCH:$BRANCH
     done