All of lore.kernel.org
 help / color / mirror / Atom feed
* git bisect start on a tag revision fails
@ 2008-02-10 11:01 Reece Dunn
  2008-02-10 13:59 ` [PATCH] bisect: allow starting with a detached HEAD Johannes Schindelin
  0 siblings, 1 reply; 2+ messages in thread
From: Reece Dunn @ 2008-02-10 11:01 UTC (permalink / raw)
  To: Git

Hi,

When hunting bugs with the wine source code
(git://source.winehq.org/git/wine.git), both Dan Kegel and I have
found the following berhaviour with git bisect:

$ git checkout wine-0.9.54
HEAD is now at 8f954cc... Release 0.9.54.
$ git bisect start
fatal: ref HEAD is not a symbolic ref
Bad HEAD - I need a symbolic ref

Whereas doing:

$ git checkout master
$ git bisect start

then:

$ git checkout wine-0.9.54
$ git bisect good

works.

Is it possible to have bisect support non-symbolic refs?

- Reece

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCH] bisect: allow starting with a detached HEAD
  2008-02-10 11:01 git bisect start on a tag revision fails Reece Dunn
@ 2008-02-10 13:59 ` Johannes Schindelin
  0 siblings, 0 replies; 2+ messages in thread
From: Johannes Schindelin @ 2008-02-10 13:59 UTC (permalink / raw)
  To: Reece Dunn; +Cc: Git, gitster


Instead of insisting on a symbolic ref, bisect now accepts detached
HEADs, too.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---

	On Sun, 10 Feb 2008, Reece Dunn wrote:

	> When hunting bugs with the wine source code
	> (git://source.winehq.org/git/wine.git), both Dan Kegel and I have
	> found the following berhaviour with git bisect:
	> 
	> $ git checkout wine-0.9.54
	> HEAD is now at 8f954cc... Release 0.9.54.
	> $ git bisect start
	> fatal: ref HEAD is not a symbolic ref
	> Bad HEAD - I need a symbolic ref

	Woohoo!  test_expect_failure is nice... it tells you about
	a fixed behaviour, too!

	(Of course, I changed it to test_expect_success now...)

 git-bisect.sh               |    8 ++++++--
 t/t6030-bisect-porcelain.sh |   12 ++++++++++++
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/git-bisect.sh b/git-bisect.sh
index 5385249..393fa35 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -26,6 +26,9 @@ OPTIONS_SPEC=
 . git-sh-setup
 require_work_tree
 
+_x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
+_x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
+
 sq() {
 	@@PERL@@ -e '
 		for (@ARGV) {
@@ -60,7 +63,8 @@ bisect_start() {
 	# top-of-line master first!
 	#
 	head=$(GIT_DIR="$GIT_DIR" git symbolic-ref HEAD) ||
-	die "Bad HEAD - I need a symbolic ref"
+	head=$(GIT_DIR="$GIT_DIR" git rev-parse --verify HEAD) ||
+	die "Bad HEAD - I need a HEAD"
 	case "$head" in
 	refs/heads/bisect)
 		if [ -s "$GIT_DIR/head-name" ]; then
@@ -70,7 +74,7 @@ bisect_start() {
 		fi
 		git checkout $branch || exit
 		;;
-	refs/heads/*)
+	refs/heads/*|$_x40)
 		[ -s "$GIT_DIR/head-name" ] && die "won't bisect on seeked tree"
 		echo "${head#refs/heads/}" >"$GIT_DIR/head-name"
 		;;
diff --git a/t/t6030-bisect-porcelain.sh b/t/t6030-bisect-porcelain.sh
index 2ba4b00..ec71123 100755
--- a/t/t6030-bisect-porcelain.sh
+++ b/t/t6030-bisect-porcelain.sh
@@ -254,6 +254,18 @@ test_expect_success 'bisect run & skip: find first bad' '
 	grep "$HASH6 is first bad commit" my_bisect_log.txt
 '
 
+test_expect_success 'bisect starting with a detached HEAD' '
+
+	git bisect reset &&
+	git checkout master^ &&
+	HEAD=$(git rev-parse --verify HEAD) &&
+	git bisect start &&
+	test $HEAD = $(cat .git/head-name) &&
+	git bisect reset &&
+	test $HEAD = $(git rev-parse --verify HEAD)
+
+'
+
 #
 #
 test_done
-- 
1.5.4.1264.gb53928

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-02-10 14:01 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-02-10 11:01 git bisect start on a tag revision fails Reece Dunn
2008-02-10 13:59 ` [PATCH] bisect: allow starting with a detached HEAD Johannes Schindelin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.