Mercurial > hg > vamp-build-and-test
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;;