DORMANTno replies

[PATCH v8a] bisect: fix 'git bisect run' so that it works with alternate --update-ref

From: Jon Seymour <hidden>
Date: 2016-06-15 22:51:42
Subsystem: the rest · Maintainer: Linus Torvalds

An additional patch for the v8 series that ensures that 'git bisect run'
respects .git/BISECT_UPDATE_REF.

Signed-off-by: Jon Seymour <redacted>
---
 git-bisect.sh               |    5 +++--
 t/t6030-bisect-porcelain.sh |   15 +++++++++++++++
 2 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/git-bisect.sh b/git-bisect.sh
index ec70cd2..126d698 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -230,8 +230,9 @@ bisect_state() {
 	0,*)
 		die "$(gettext "Please call 'bisect_state' with at least one argument.")" ;;
 	1,bad|1,good|1,skip)
-		rev=$(git rev-parse --verify HEAD) ||
-			die "$(gettext "Bad rev input: HEAD")"
+		ref=${BISECT_UPDATE_REF:-HEAD}
+		rev=$(git rev-parse --verify "$ref") ||
+			die "$(gettext "Bad rev input: $ref")"
 		bisect_write "$state" "$rev"
 		check_expected_revs "$rev" ;;
 	2,bad|*,good|*,skip)
diff --git a/t/t6030-bisect-porcelain.sh b/t/t6030-bisect-porcelain.sh
index fa4366f..40f7a76 100755
--- a/t/t6030-bisect-porcelain.sh
+++ b/t/t6030-bisect-porcelain.sh
@@ -736,4 +736,19 @@ test \$rc -eq 0;' &&
 	git bisect reset
 "
 
+test_expect_success 'bisect: demonstrate identification of damage boundary using alternate reference' "
+	git bisect reset &&
+	git checkout broken &&
+	git bisect start broken master --no-checkout --update-ref=CURSOR &&
+	git bisect run eval '
+rc=1;
+if git rev-list --objects CURSOR >tmp.$$; then
+   git pack-objects --stdout >/dev/null < tmp.$$ && rc=0;
+fi;
+rm tmp.$$;
+test \$rc -eq 0;' &&
+	check_same BROKEN_HASH6 bisect/bad &&
+	git bisect reset
+"
+
 test_done
-- 
1.7.6.389.gccb79d.dirty
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help