X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=scripts%2Fgit-mirror.sh;h=3f05125dfb8410fc4e0ba803ef78e58b953b08c2;hb=189e186836bee7798403c0586efea55761623c88;hp=ca58ab1249813fc430096272215f727a83a69163;hpb=d168f618282c1434350120487dacd2d82184f4fd;p=infrastructure.git diff --git a/scripts/git-mirror.sh b/scripts/git-mirror.sh index ca58ab1..3f05125 100755 --- a/scripts/git-mirror.sh +++ b/scripts/git-mirror.sh @@ -2,7 +2,7 @@ COMMAND=$(basename $0) # for sending emails (-a option) -ADMINS="Thierry.Parmentelat@inria.fr baris@metin.org" +ADMINS="Thierry.Parmentelat@inria.fr" # the other end of the mirror (-r option) REMOTE_GIT="git://git.planet-lab.org" # options @@ -144,6 +144,13 @@ function mirror_repo () { REMOTE_REPO=${REMOTE_GIT}/${GIT_NAME} MASTER_REPO=${MASTER_GIT}/${GIT_NAME} + # if the local master is a symlink (like /git/vserver-reference.git -> sliceref.git) + # then skip it + # we use this for either aliases (like vserver-reference and sliceimage) or + # for repos managed in other locations (like /git-slave) but where + # the symlink is needed so they get served by git-daemon + [ -h ${MASTER_REPO} ] && return + # if there is no remote repository it may be that we only have # the repository locally and don't need to mirror git ls-remote $REMOTE_REPO &> /dev/null || return @@ -191,8 +198,6 @@ function mirror_repo () { 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 } @@ -208,7 +213,7 @@ function usage () { exit 1 } -while getopts "a:r:qvfh" opt; do +while getopts "a:r:s:qvfh" opt; do case $opt in a) ADMINS=$OPTARG ;; r) REMOTE_GIT=$OPTARG ;;