Git development
 help / color / mirror / Atom feed
From: Petr Baudis <pasky@suse.cz>
To: junkio@cox.net
Cc: git@vger.kernel.org
Subject: [PATCH] Properly git-bisect reset after bisecting from non-master head
Date: Sun, 12 Feb 2006 17:06:14 +0100	[thread overview]
Message-ID: <20060212160614.GV31278@pasky.or.cz> (raw)

git-bisect reset without an argument would return to master even
if the bisecting started at a non-master branch. This patch makes
it save the original branch name to .git/head-name and restore it
afterwards.

This is also compatible with Cogito and cg-seek, so cg-status will
show that we are seeked on the bisect branch and cg-reset will
properly restore the original branch.

git-bisect start will refuse to work if it is not on a bisect but
.git/head-name exists; this is to protect against conflicts with
other seeking tools.

Signed-off-by: Petr Baudis <pasky@suse.cz>

---
commit 143fc0c9a04ca38a70fbd882e38620f566415b6c
tree c93f93a984c00cfa08bbb9cb46bd1c6ba2c82de0
parent 8dcc626cd144b2c6eae2a299242bbbe905cb0059
author Petr Baudis <pasky@suse.cz> Sun, 12 Feb 2006 16:57:39 +0100
committer Petr Baudis <xpasky@machine.or.cz> Sun, 12 Feb 2006 16:57:39 +0100

 git-bisect.sh |   17 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/git-bisect.sh b/git-bisect.sh
index 51e1e44..3c024aa 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -49,9 +49,16 @@ bisect_start() {
 	die "Bad HEAD - I need a symbolic ref"
 	case "$head" in
 	refs/heads/bisect*)
-		git checkout master || exit
+		if [ -s "$GIT_DIR/head-name" ]; then
+		    branch=`cat "$GIT_DIR/head-name"`
+		else
+		    branch=master
+	        fi
+		git checkout $branch || exit
 		;;
 	refs/heads/*)
+		[ -s "$GIT_DIR/head-name" ] && die "won't bisect on seeked tree"
+		echo "$head" | sed 's#^refs/heads/##' >"$GIT_DIR/head-name"
 		;;
 	*)
 		die "Bad HEAD - strange symbolic ref"
@@ -159,7 +166,11 @@ bisect_visualize() {
 
 bisect_reset() {
 	case "$#" in
-	0) branch=master ;;
+	0) if [ -s "$GIT_DIR/head-name" ]; then
+	       branch=`cat "$GIT_DIR/head-name"`
+	   else
+	       branch=master
+	   fi ;;
 	1) test -f "$GIT_DIR/refs/heads/$1" || {
 	       echo >&2 "$1 does not seem to be a valid branch"
 	       exit 1
@@ -170,7 +181,7 @@ bisect_reset() {
 	esac
 	git checkout "$branch" &&
 	rm -fr "$GIT_DIR/refs/bisect"
-	rm -f "$GIT_DIR/refs/heads/bisect"
+	rm -f "$GIT_DIR/refs/heads/bisect" "$GIT_DIR/head-name"
 	rm -f "$GIT_DIR/BISECT_LOG"
 }
 


-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
Of the 3 great composers Mozart tells us what it's like to be human,
Beethoven tells us what it's like to be Beethoven and Bach tells us
what it's like to be the universe.  -- Douglas Adams

             reply	other threads:[~2006-02-12 16:05 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-02-12 16:06 Petr Baudis [this message]
2006-02-12 19:33 ` [PATCH] Properly git-bisect reset after bisecting from non-master head Junio C Hamano
2006-02-12 19:41   ` Petr Baudis
2006-02-12 20:35     ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060212160614.GV31278@pasky.or.cz \
    --to=pasky@suse.cz \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox