changeset 127:622ddc1ace50

Add repo revision arg
author Chris Cannam
date Thu, 07 Feb 2019 10:45:03 +0000
parents 828f0de6b2fb
children 3a8658f7e0b7
files SCRIPTS/update.sh
diffstat 1 files changed, 16 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/SCRIPTS/update.sh	Wed Feb 06 13:50:03 2019 +0000
+++ b/SCRIPTS/update.sh	Thu Feb 07 10:45:03 2019 +0000
@@ -2,12 +2,22 @@
 
 # Run this from the top-level vamp-build-and-test directory
 # Optional argument for the single repo to checkout; default is all of them
+# Optional second argument for the revision to checkout; default is tip
 
 single=""
 if [ -n "$1" ]; then
     single="$1"
 fi
 
+rev=""
+revopt_hg=""
+revopt_git=""
+if [ -n "$2" ]; then
+    rev="$2"
+    revopt_hg="-r$rev"
+    revopt_git="-b$rev"
+fi
+
 set -eu
 
 failed=/tmp/failed_$$
@@ -22,18 +32,21 @@
             fi
         fi
 	if [ -d "$name"/.hg ]; then 
- 	    ( cd $name ; hg pull && hg update ) || echo "$name" >> "$failed"
+ 	    ( cd $name ; hg pull && hg update $revopt_hg ) || echo "$name" >> "$failed"
 	elif [ -d "$name"/.git ]; then 
  	    ( cd $name ; git pull ) || echo "$name" >> "$failed"
+            if [ -n "$rev" ]; then
+                ( cd $name ; git checkout "$rev" ) || echo "$name" >> "$failed"
+            fi
 	elif [ -d "$name" ]; then
 	    echo "ERROR: Directory \"$name\" exists, but is not a git or hg repo" 1>&2
 	    exit 1
 	else
 	    case "$loc" in
 		*/hg/*)
-		    hg clone "$loc" "$name" || echo "$name" >> "$failed";;
+		    hg clone $revopt_hg "$loc" "$name" || echo "$name" >> "$failed";;
 		*//git*)
-		    git clone "$loc" "$name" || echo "$name" >> "$failed";;
+		    git clone $revopt_git "$loc" "$name" || echo "$name" >> "$failed";;
 		*)
 		    echo "ERROR: Can't deduce repo type from URL \"$loc\"" 1>&2
 		    exit 1;;