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
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
fi
# success, remove previous check file if any
clear_notify $REPO_DIR
+ # reset to branch master if exists
+ run -i ${REPO_DIR} git checkout master
+ # touch a stamp so it's easier to figure out where/if things get stuck
+ touch ${REPO_DIR}/MIRRORED.stamp
}
function usage () {