git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v3 3/7] bisect: treat BISECT_HEAD as a ref

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 26, 2015, 21:46 UTC
Message-ID
<xmqqtwturvme.fsf@gitster.dls.corp.google.com>
In-Reply-To
<1435278548-3790-3-git-send-email-dturner@twopensource.com>
David Turner <dturner@twopensource.com> writes:
Show 5 quoted lines
> 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 <dturner@twopensource.com>
> ---

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.
Show 45 quoted lines
>  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 <commit>'.")"
Previous: David TurnerNext: David Turner
Message 5 of 12 in “refs.c: add err arguments to reflog functions”
  1. 1/7 refs.c: add err arguments to reflog functionsDavid Turner, Jun 26, 2015
  2. 2/7 cherry-pick: treat CHERRY_PICK_HEAD and REVERT_HEAD as refsDavid Turner, Jun 26, 2015
  3. Junio C HamanoJun 26, 2015
  4. 3/7 bisect: treat BISECT_HEAD as a refDavid Turner, Jun 26, 2015
  5. Junio C HamanoJun 26, 2015
  6. 4/7 refs: Break out check for reflog autocreationDavid Turner, Jun 26, 2015
  7. Junio C HamanoJun 26, 2015
  8. 5/7 refs: add safe_create_reflog functionDavid Turner, Jun 26, 2015
  9. Junio C HamanoJun 26, 2015
  10. 6/7 git-reflog: add create and exists functionsDavid Turner, Jun 26, 2015
  11. 7/7 git-stash: use git-reflog instead of creating filesDavid Turner, Jun 26, 2015
  12. Junio C HamanoJun 26, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.