X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=scripts%2Fgit-mirror.sh;h=3f05125dfb8410fc4e0ba803ef78e58b953b08c2;hb=a8aa1baef6f4d1df60f44d1d542912acff913226;hp=1f2a5b999caf26b6bc52f72675e82bb67258366e;hpb=37ff7fc842362180c5eef6e7f5b9c68aad0177da;p=infrastructure.git diff --git a/scripts/git-mirror.sh b/scripts/git-mirror.sh index 1f2a5b9..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,6 +198,8 @@ function mirror_repo () { fi # success, remove previous check file if any clear_notify $REPO_DIR + # touch a stamp so it's easier to figure out where/if things get stuck + touch ${REPO_DIR}/MIRRORED.stamp } function usage () { @@ -204,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 ;;