Subject: Re: [PATCH v2 3/6] bisect: use refs infrastructure for BISECT_START

From: Junio C Hamano <[email-masked]>
Date: Thu, 25 Jun 2015 13:52:40 -0700

David Turner <[email-masked]> writes:

> This ref needs to go through the refs backend, since some code assumes
> that it can be written and read as a ref.

And the reason why BISECT_HEAD cannot be treated as a ref, but must
be treated as a file under $GIT_DIR, is...?

>
> Signed-off-by: David Turner <[email-masked]>
> ---
>  contrib/completion/git-completion.bash | 2 +-
>  git-bisect.sh                          | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index 93716c4..c4d4d80 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -938,7 +938,7 @@ _git_bisect ()
>  	local subcommands="start bad good skip reset visualize replay log run"
>  	local subcommand="$(__git_find_on_cmdline "$subcommands")"
>  	if [ -z "$subcommand" ]; then
> -		if [ -f "$(__gitdir)"/BISECT_START ]; then
> +		if [ git rev-parse BISECT_START 2>/dev/null ]; then
>  			__gitcomp "$subcommands"
>  		else
>  			__gitcomp "replay start"
> diff --git a/git-bisect.sh b/git-bisect.sh
> index ae3fec2..8658772 100755
> --- a/git-bisect.sh
> +++ b/git-bisect.sh
> @@ -166,7 +166,7 @@ bisect_start() {
>  	#
>  	echo "$start_head" >"$GIT_DIR/BISECT_START" && {
>  		test "z$mode" != "z--no-checkout" ||
> -		git update-ref --no-deref BISECT_HEAD "$start_head"
> +		git rev-parse "$start_head" > "$GIT_DIR/BISECT_HEAD"
>  	} &&
>  	git rev-parse --sq-quote "$@" >"$GIT_DIR/BISECT_NAMES" &&
>  	eval "$eval true" &&
> @@ -399,7 +399,7 @@ bisect_clean_state() {
>  	rm -f "$GIT_DIR/BISECT_RUN" &&
>  	# Cleanup head-name if it got left by an old version of git-bisect
>  	rm -f "$GIT_DIR/head-name" &&
> -	git update-ref -d --no-deref BISECT_HEAD &&
> +	rm -f "$GIT_DIR/BISECT_HEAD" &&
>  	# clean up BISECT_START last
>  	rm -f "$GIT_DIR/BISECT_START"
>  }