X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustrecvs;h=f6f62eff2c547a315dade714e28aa8a5614a00f7;hb=ee9ac812bc811e99737fa8e9e6388fbc2b3e0c47;hp=70ac2a038e1805f3afec84ae46970a7051f63721;hpb=7b16772ac5bd3a3e0b5c7c52d96f261be9b22263;p=fs%2Flustre-release.git diff --git a/lustrecvs b/lustrecvs index 70ac2a0..f6f62ef 100755 --- a/lustrecvs +++ b/lustrecvs @@ -1,5 +1,6 @@ #!/bin/sh +LC_COLLATE="C" progname="${0##*/}" warn () @@ -18,13 +19,29 @@ fatal () usage () { cat < + where is a tag of the lustre-core module EOF } +if [ -z "$LUSTRECVS_UPDATED" ] ; then + echo "$progname: updating lustrecvs" + cvs up -l || fatal 1 "Error updating lustrecvs" + export LUSTRECVS_UPDATED=yes + exec "$0" "$@" +fi + +[ "$1" = "-r" ] && shift + buildtag="HEAD" lustretag="$1" +shift + +if [ "$*" ] ; then + usage >&2 + exit 1 +fi + case "$lustretag" in '') @@ -37,6 +54,12 @@ case "$lustretag" in exit 0 ;; + b1_4_newconfig*) + buildtag="b_lnet" + ;; + + v*) buildtag=$lustretag ;; + # this is the branch table # keep this list sorted alphabetically! @@ -46,28 +69,35 @@ case "$lustretag" in esac +error_modules= cvs_cmd () { - local dir="$1" - local module="$2" - local tag="$3" - local cotag="" - local update="" + dir="$1" + module="$2" + tag="$3" + cotag="" + update="" if [ "$tag" = "HEAD" ] ; then cotag="" uptag="-A" - else + elif [ "$tag" ] ; then cotag="-r $tag" uptag="-r $tag" + else + # silently skip if no tag was specified + return fi if [ -d "$dir" ] ; then echo "$progname: Updating $dir to $tag" - ( cd "$dir" && cvs up $uptag ) + ( cd "$dir" && cvs up -dP $uptag ) else echo "$progname: Checking out $dir from $tag" - cvs co $cotag -d "$dir" "$module" + cvs co -P $cotag -d "$dir" "$module" + fi + if [ $? != 0 ] ; then + error_modules="$dir $error_modules" fi } @@ -78,3 +108,7 @@ if [ -f build/buildcvs ] ; then else fatal 1 "build/buildcvs does not exist; not updating other modules." fi + +if [ "$error_modules" ] ; then + fatal 1 "There were errors checking out the following directories: $error_modules" +fi