[PATCH 7/9 v5] bisect: use "--bisect-replace" options when checking merge bases
From: Christian Couder <hidden>
Date: 2016-06-15 22:45:41
Subsystem:
the rest · Maintainer:
Linus Torvalds
Signed-off-by: Christian Couder <redacted> --- git-bisect.sh | 4 ++-- t/t6035-bisect-replace.sh | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/git-bisect.sh b/git-bisect.sh
index ed7c620..c8d5905 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.5.6.1.1657.g6a50