Whamcloud - gitweb
Branch b1_8_gate
[fs/lustre-release.git] / lustrecvs
index acf7c95..1e86d0f 100755 (executable)
--- a/lustrecvs
+++ b/lustrecvs
@@ -27,7 +27,14 @@ EOF
 
 if [ -z "$LUSTRECVS_UPDATED" ] ; then
     echo "$progname: updating lustrecvs"
-    cvs up -l || fatal 1 "Error updating lustrecvs"
+
+    # If checking out a specific tag, make sure all of the files here are also
+    # checked out with the same tag to avoid later changes breaking things.
+    case "$1" in
+    v*|b_release_*) TAG="-r $1" ;;
+    esac
+
+    cvs update -l $TAG
     export LUSTRECVS_UPDATED=yes
     exec "$0" "$@"
 fi
@@ -59,6 +66,8 @@ case "$lustretag" in
     # this is the branch table
     # keep this list sorted alphabetically!
 
+    # These use special build directories 
+
     b1_4*) buildtag="b1_4" ;;
 
     b_release_1_4_6-patchless) buildtag="b1_4" ;;
@@ -66,6 +75,8 @@ case "$lustretag" in
 
     b_release*) buildtag=$lustretag ;;
 
+    b_uoss) buildtag=$lustretag ;;
+
     # These releases did not get build tagged for them because they
     # this build system didn't exist when they were tagged
     v1_2_8|v1_4_0) 
@@ -77,6 +88,8 @@ case "$lustretag" in
     # this is the branch table
     # keep this list sorted alphabetically!
 
+    *_gate) buildtag="b_build_gate" ;;
+
     *)
         buildtag="HEAD"
        ;;
@@ -122,6 +135,58 @@ cvs_cmd ()
     fi
 }
 
+hg_cmd ()
+{
+    dir="$1"
+    base_url="$2"
+    repository="$3"
+
+    if [ ! "$repository" ]; then
+        return
+    fi
+
+    if ! which hg &> /dev/null; then
+    cat <<EOF
+
+Error: Mercurial is missing, try 'yum install mercurial', 'apt-get install
+mercurial' or try http://rpmfind.net/linux/rpm2html/search.php?query=mercurial
+EOF
+        error_modules="$dir $error_modules"
+        return
+    fi
+
+    url="$base_url/$repository"
+
+    # create a cvs date format that will survive shell expansion
+    if [ -n "$pindate" ]; then
+        datecmd=$(date -u +%s -d "$pindate")
+        datecmd="-d \"$datecmd 0\""
+    else
+        datecmd=""
+    fi
+
+    if [ -d "$dir" ]; then
+        echo "$progname: Updating $dir"
+        if [ -f "$dir/update.sh" ]; then
+            ( cd "$dir" && ./update.sh $datecmd )
+        else
+            ( cd "$dir" && hg pull && hg update $datecmd )
+        fi
+    else
+        echo "$progname: Checking out $dir"
+        hg clone $url $dir
+        if [ -f "$dir/setup.sh" ]; then
+            ( cd "$dir" && ./setup.sh $datecmd )
+        else
+            ( cd "$dir" && hg update $datecmd )
+        fi
+    fi
+
+    if [ $? != 0 ] ; then
+        error_modules="$dir $error_modules"
+    fi
+}
+
 cvs_cmd build lustre-build "$buildtag"
 
 if [ -f build/buildcvs ] ; then