Merge branch 'cc/bisect-rev-parsing'
The logic in "git bisect bad HEAD" etc. to avoid forcing the test of the common ancestor of bad and good commits was broken. * cc/bisect-rev-parsing: bisect: add test to check that revs are properly parsed bisect: parse revs before passing them to check_expected_revs()
This commit is contained in:
commit
42618bc34e
@ -237,15 +237,18 @@ bisect_state() {
|
|||||||
check_expected_revs "$rev" ;;
|
check_expected_revs "$rev" ;;
|
||||||
2,bad|*,good|*,skip)
|
2,bad|*,good|*,skip)
|
||||||
shift
|
shift
|
||||||
eval=''
|
hash_list=''
|
||||||
for rev in "$@"
|
for rev in "$@"
|
||||||
do
|
do
|
||||||
sha=$(git rev-parse --verify "$rev^{commit}") ||
|
sha=$(git rev-parse --verify "$rev^{commit}") ||
|
||||||
die "$(eval_gettext "Bad rev input: \$rev")"
|
die "$(eval_gettext "Bad rev input: \$rev")"
|
||||||
eval="$eval bisect_write '$state' '$sha'; "
|
hash_list="$hash_list $sha"
|
||||||
done
|
done
|
||||||
eval "$eval"
|
for rev in $hash_list
|
||||||
check_expected_revs "$@" ;;
|
do
|
||||||
|
bisect_write "$state" "$rev"
|
||||||
|
done
|
||||||
|
check_expected_revs $hash_list ;;
|
||||||
*,bad)
|
*,bad)
|
||||||
die "$(gettext "'git bisect bad' can take only one argument.")" ;;
|
die "$(gettext "'git bisect bad' can take only one argument.")" ;;
|
||||||
*)
|
*)
|
||||||
|
@ -779,4 +779,13 @@ test_expect_success 'bisect log: only skip commits left' '
|
|||||||
git bisect reset
|
git bisect reset
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success '"git bisect bad HEAD" behaves as "git bisect bad"' '
|
||||||
|
git checkout parallel &&
|
||||||
|
git bisect start HEAD $HASH1 &&
|
||||||
|
git bisect good HEAD &&
|
||||||
|
git bisect bad HEAD &&
|
||||||
|
test "$HASH6" = $(git rev-parse --verify HEAD) &&
|
||||||
|
git bisect reset
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user