diff options
Diffstat (limited to 'bin/git/git-test-sequence')
-rw-r--r-- | bin/git/git-test-sequence | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/bin/git/git-test-sequence b/bin/git/git-test-sequence deleted file mode 100644 index 5aa4d27..0000000 --- a/bin/git/git-test-sequence +++ /dev/null @@ -1,95 +0,0 @@ -#!/bin/sh -# Run a command over a sequence of commits. -# Example: -# git test-sequence origin/master.. 'make clean && make test' - -. git-sh-setup -require_work_tree - -t= -run_once= -ref_name=pass - -# The tree must be really really clean. -if ! git update-index --ignore-submodules --refresh > /dev/null; then - echo >&2 "cannot rebase: you have unstaged changes" - git diff-files --name-status -r --ignore-submodules -- >&2 - exit 1 -fi -diff=$(git diff-index --cached --name-status -r --ignore-submodules HEAD --) -case "$diff" in - ?*) echo >&2 "cannot rebase: your index contains uncommitted changes" - echo >&2 "$diff" - exit 1 - ;; -esac - -start_branch=`git rev-parse --symbolic-full-name HEAD | sed s,refs/heads/,,` -git checkout `git rev-parse HEAD` > /dev/null 2>/dev/null - -cleanup() { - git checkout $start_branch > /dev/null 2>/dev/null -} - -already_passed() { - obdata=${ref_name}-$t-$1 - obhash=`echo $obdata | git hash-object --stdin` - git cat-file blob $obhash > /dev/null 2>/dev/null \ - && echo "Already ${ref_name} $1" -} - -passed_on() { - obdata=${ref_name}-$t-$1 - echo $obdata | git hash-object -w --stdin > /dev/null - echo "Passed: $1." -} - -broke_on() { - echo "Broke on $1" - cleanup - exit 1 -} - -new_test() { - echo "Testing $2" - git reset --hard $v && eval "$2" && passed_on $1 || broke_on $v - status=$? - if test -n "$run_once"; then - cleanup - exit $status - fi -} - - -while test $# != 0 -do - case "$1" in - --once) - run_once=yes - ;; - --ref-name) - ref_name=$2 - shift - ;; - *) - break; - ;; - esac - shift -done - -t=`echo "$2" | git hash-object --stdin` - -for v in `git rev-list --reverse $1` -do - tree_ver=`git rev-parse "$v^{tree}"` - already_passed $tree_ver || new_test $tree_ver "$2" -done -cleanup - -if test -n "$run_once"; then - echo "All commits already passed for --once argument. Quiting." - exit 127 -fi - -echo "All's well." |