# [PATCH] bisect reset: Leave the tree in usable state if git-checkout failed

2 messages from 2006-10-16 to 2006-10-16. Participants: Petr Baudis.
Thread: https://gitlist.dev/t/5934

## Petr Baudis, 2006-10-16 00:59

Subject: [PATCH] bisect reset: Leave the tree in usable state if git-checkout failed
Message-ID: <20061016005925.27019.38262.stgit@machine.or.cz>
URL: https://gitlist.dev/e/20061016005925.27019.38262.stgit%40machine.or.cz

```
I had local modifications in the tree and doing bisect reset required me to
manually edit .git/HEAD.

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

 git-bisect.sh |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/git-bisect.sh b/git-bisect.sh
index 06a8d26..09cd179 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -179,11 +179,12 @@ bisect_reset() {
         *)
 	    usage ;;
 	esac
-	git checkout "$branch" &&
-	rm -fr "$GIT_DIR/refs/bisect"
-	rm -f "$GIT_DIR/refs/heads/bisect" "$GIT_DIR/head-name"
-	rm -f "$GIT_DIR/BISECT_LOG"
-	rm -f "$GIT_DIR/BISECT_NAMES"
+	if ! git checkout "$branch"; then
+		rm -fr "$GIT_DIR/refs/bisect"
+		rm -f "$GIT_DIR/refs/heads/bisect" "$GIT_DIR/head-name"
+		rm -f "$GIT_DIR/BISECT_LOG"
+		rm -f "$GIT_DIR/BISECT_NAMES"
+	fi
 }
 
 bisect_replay () {

```

## Petr Baudis, 2006-10-16 01:02

Subject: Re: [PATCH] bisect reset: Leave the tree in usable state if git-checkout failed
Message-ID: <20061016010232.GX20017@pasky.or.cz>
URL: https://gitlist.dev/e/20061016010232.GX20017%40pasky.or.cz
In-Reply-To: <20061016005925.27019.38262.stgit@machine.or.cz>

```
Dear diary, on Mon, Oct 16, 2006 at 02:59:25AM CEST, I got a letter
where Petr Baudis <pasky@suse.cz> said that...
> I had local modifications in the tree and doing bisect reset required me to
> manually edit .git/HEAD.
> 
> Signed-off-by: Petr Baudis <pasky@suse.cz>
> ---
> 
>  git-bisect.sh |   11 ++++++-----
>  1 files changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/git-bisect.sh b/git-bisect.sh
> index 06a8d26..09cd179 100755
> --- a/git-bisect.sh
> +++ b/git-bisect.sh
> @@ -179,11 +179,12 @@ bisect_reset() {
>          *)
>  	    usage ;;
>  	esac
> -	git checkout "$branch" &&
> -	rm -fr "$GIT_DIR/refs/bisect"
> -	rm -f "$GIT_DIR/refs/heads/bisect" "$GIT_DIR/head-name"
> -	rm -f "$GIT_DIR/BISECT_LOG"
> -	rm -f "$GIT_DIR/BISECT_NAMES"
> +	if ! git checkout "$branch"; then

Doh, please drop the !. I had it that way before and added the negation
mark as a last-minute "fix". :/ Sorry. Not being too good at doing
random shell fixes in the middle of C coding.

> +		rm -fr "$GIT_DIR/refs/bisect"
> +		rm -f "$GIT_DIR/refs/heads/bisect" "$GIT_DIR/head-name"
> +		rm -f "$GIT_DIR/BISECT_LOG"
> +		rm -f "$GIT_DIR/BISECT_NAMES"
> +	fi
>  }
>  
>  bisect_replay () {

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1
lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/)

```
