# HG changeset patch # User Augie Fackler # Date 1237562314 18000 # Node ID b1d2ea765516f59237ce9aeaf5e3b82ce23ae453 # Parent a421aca2b0f5e5fc921e4dff643cc511722e9984 tools: refactor stuff into common.sh, make verify-all-heads not revert. diff --git a/tools/bisect-find-bad.sh b/tools/bisect-find-bad.sh --- a/tools/bisect-find-bad.sh +++ b/tools/bisect-find-bad.sh @@ -1,10 +1,4 @@ #!/bin/bash -/bin/rm -rf * -svn export `hg svn info 2> /dev/null | grep '^URL: ' | sed 's/URL: //'` -`hg svn parent | sed 's/.*: //;s/ .*//'` . --force -if [ `hg st | wc -l` = 0 ] ; then - exit 0 -else - hg revert --all - hg purge - exit 1 -fi +. $(dirname $0)/common.sh +verify_current_revision $1 +exit $? diff --git a/tools/common.sh b/tools/common.sh new file mode 100644 --- /dev/null +++ b/tools/common.sh @@ -0,0 +1,26 @@ +function verify_current_revision() +{ + /bin/rm -rf * + exportcmd="svn export `hg svn info 2> /dev/null | grep '^URL: ' | sed 's/URL: //'` -`hg svn parent | sed 's/.*: //;s/ .*//'` . --force" + `echo $exportcmd` > /dev/null + x=$? + if [[ "$x" != "0" ]] ; then + echo $exportcmd + echo 'export failed!' + return 255 + fi + if [[ "`hg st | wc -l`" == "0" ]] ; then + return 0 + else + if [[ $1 != "keep" ]] ; then + revert_all_files + fi + return 1 + fi +} + +function revert_all_files() +{ + hg revert --all + hg purge +} diff --git a/tools/verify-all-heads.sh b/tools/verify-all-heads.sh --- a/tools/verify-all-heads.sh +++ b/tools/verify-all-heads.sh @@ -1,7 +1,9 @@ #!/bin/sh +. $(dirname $0)/common.sh + for b in `hg branches | cut -f 1 -d ' '` ; do hg co $b || break echo Verifying $b - $(dirname $0)/bisect-find-bad.sh > /dev/null || break + verify_current_revision keep > /dev/null || break echo $b Verified. done