Signed-off-by: Christian Couder <chriscool@xxxxxxxxxxxxx> --- git-bisect.sh | 4 ++-- t/t6035-bisect-replace.sh | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) This is the same as [PATCH 7/7 v3] but with a test case added. diff --git a/git-bisect.sh b/git-bisect.sh index 1daa81c..87e186f 100755 --- a/git-bisect.sh +++ b/git-bisect.sh @@ -401,7 +401,7 @@ check_merge_bases() { _bad="$1" _good="$2" _skip="$3" - for _mb in $(git merge-base --all $_bad $_good) + for _mb in $(git merge-base --all --bisect-replace $_bad $_good) do if is_among "$_mb" "$_good"; then continue @@ -436,7 +436,7 @@ check_good_are_ancestors_of_bad() { # Bisecting with no good rev is ok test -z "$_good" && return - _side=$(git rev-list $_good ^$_bad) + _side=$(git rev-list --bisect-replace $_good ^$_bad) if test -n "$_side"; then # Return if a checkout was done check_merge_bases "$_bad" "$_good" "$_skip" || return diff --git a/t/t6035-bisect-replace.sh b/t/t6035-bisect-replace.sh index 8fe7cc5..dabf1ae 100755 --- a/t/t6035-bisect-replace.sh +++ b/t/t6035-bisect-replace.sh @@ -144,6 +144,16 @@ test_expect_success '"git merge-base --bisect-replace" works' ' test "$hash" = "$HASH1" ' +test_expect_success 'git bisect works when starting on the replace branch' ' + git bisect start $HASH7 $HASHFIX3 && + test "$(git rev-parse --verify HEAD)" = "$HASH5" && + git bisect bad && + test "$(git rev-parse --verify HEAD)" = "$HASHFIX4" && + git bisect good > my_bisect_log.txt && + grep "$HASH5 is first bad commit" my_bisect_log.txt && + git bisect reset +' + # # test_done -- 1.6.0.3.620.ge1fc -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html