diff options
Diffstat (limited to 'git-bisect.sh')
-rwxr-xr-x | git-bisect.sh | 66 |
1 files changed, 33 insertions, 33 deletions
diff --git a/git-bisect.sh b/git-bisect.sh index b2186a8627..20f6dd5625 100755 --- a/git-bisect.sh +++ b/git-bisect.sh @@ -60,6 +60,39 @@ bisect_autostart() { bisect_start() { # + # Check for one bad and then some good revisions. + # + has_double_dash=0 + for arg; do + case "$arg" in --) has_double_dash=1; break ;; esac + done + orig_args=$(git rev-parse --sq-quote "$@") + bad_seen=0 + eval='' + while [ $# -gt 0 ]; do + arg="$1" + case "$arg" in + --) + shift + break + ;; + *) + rev=$(git rev-parse -q --verify "$arg^{commit}") || { + test $has_double_dash -eq 1 && + die "$(eval_gettext "'\$arg' does not appear to be a valid revision")" + break + } + case $bad_seen in + 0) state='bad' ; bad_seen=1 ;; + *) state='good' ;; + esac + eval="$eval bisect_write '$state' '$rev' 'nolog'; " + shift + ;; + esac + done + + # # Verify HEAD. # head=$(GIT_DIR="$GIT_DIR" git symbolic-ref -q HEAD) || @@ -98,39 +131,6 @@ bisect_start() { bisect_clean_state || exit # - # Check for one bad and then some good revisions. - # - has_double_dash=0 - for arg; do - case "$arg" in --) has_double_dash=1; break ;; esac - done - orig_args=$(git rev-parse --sq-quote "$@") - bad_seen=0 - eval='' - while [ $# -gt 0 ]; do - arg="$1" - case "$arg" in - --) - shift - break - ;; - *) - rev=$(git rev-parse -q --verify "$arg^{commit}") || { - test $has_double_dash -eq 1 && - die "$(eval_gettext "'\$arg' does not appear to be a valid revision")" - break - } - case $bad_seen in - 0) state='bad' ; bad_seen=1 ;; - *) state='good' ;; - esac - eval="$eval bisect_write '$state' '$rev' 'nolog'; " - shift - ;; - esac - done - - # # Change state. # In case of mistaken revs or checkout error, or signals received, # "bisect_auto_next" below may exit or misbehave. |