From: Junio C Hamano Date: Fri, 26 Jun 2015 21:46:17 GMT Subject: Re: [PATCH v3 3/7] bisect: treat BISECT_HEAD as a ref Message-ID: In-Reply-To: <1435278548-3790-3-git-send-email-dturner@twopensource.com> David Turner writes: > Instead of directly writing to and reading from files in > $GIT_DIR, use ref API to interact with BISECT_HEAD. > > Signed-off-by: David Turner > --- Interesting. From the patch, it seems that the codepath that writes BISECT_HEAD were already doing update-ref instead of writing into or removing a file. The result of applying this patch looked sane. Thanks. > git-bisect.sh | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/git-bisect.sh b/git-bisect.sh > index ae3fec2..dddcc89 100755 > --- a/git-bisect.sh > +++ b/git-bisect.sh > @@ -35,7 +35,7 @@ _x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40" > > bisect_head() > { > - if test -f "$GIT_DIR/BISECT_HEAD" > + if bisect_head_exists > then > echo BISECT_HEAD > else > @@ -209,6 +209,10 @@ check_expected_revs() { > done > } > > +bisect_head_exists() { > + git rev-parse --quiet --verify "BISECT_HEAD" >/dev/null > +} > + > bisect_skip() { > all='' > for arg in "$@" > @@ -310,7 +314,7 @@ bisect_next() { > bisect_next_check good > > # Perform all bisection computation, display and checkout > - git bisect--helper --next-all $(test -f "$GIT_DIR/BISECT_HEAD" && echo --no-checkout) > + git bisect--helper --next-all $(bisect_head_exists && echo --no-checkout) > res=$? > > # Check if we should exit because bisection is finished > @@ -377,7 +381,7 @@ bisect_reset() { > usage ;; > esac > > - if ! test -f "$GIT_DIR/BISECT_HEAD" && ! git checkout "$branch" -- > + if ! bisect_head_exists && ! git checkout "$branch" -- > then > die "$(eval_gettext "Could not check out original HEAD '\$branch'. > Try 'git bisect reset '.")"