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

Re: [PATCH v14 5/8] bisect: introduce --no-checkout support into porcelain.

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 2, 2011, 23:16 UTC
Message-ID
<7vk4avcsk9.fsf@alter.siamese.dyndns.org>
In-Reply-To
<7voc07ct9z.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 28 quoted lines
> Jon Seymour <jon.seymour@gmail.com> writes:
> ...
>> +		if test "$BISECT_MODE" = "--no-checkout"; then
>> +		    git update-ref --no-deref HEAD "$start_head"
>> +		else
>> +		    git checkout "$start_head" --
>> +		fi
>
> Just a minor worry but I would not be surprised if somebody's "test"
> implementation barfs upon:
>
> 	test "--no-checkout" = "--no-checkout"
>
> mistaking the string with a dash at the beginning as an option unknown to
> it. That is why we often have "z$variable" in our comparison, like so:
>
> 	if test "z$BISECT_MODE" = "z--no-checkout"
>         then
>         	git update-ref --no-deref BISECT_HEAD "$start_head"
> 	else
>         	git checkout "$start_head" --
> 	fi
>
>> -	git rev-parse --sq-quote "$@" >"$GIT_DIR/BISECT_NAMES" &&
>> +	git rev-parse --sq-quote "$@" >"$GIT_DIR/BISECT_NAMES"
>> +	echo "$BISECT_MODE" > "$GIT_DIR/BISECT_MODE" &&
>
> &&?

Having said that, other than these minor nits, I think this round is almost ready. I didn't check how it behaves upon "bisect reset", though. It shouldn't touch the index, HEAD nor the working tree (it probably is just the matter of "update-ref -d BISECT_HEAD" and nothing else, but I haven't thought things through thoroughly).

Further polishing we may want to do while it is still in pu/next I can think of off the top of my head are:

 - In this mode, I can bisect the history even inside a bare repository,
   as the whole point of --no-checkout is that the mode does not require a
   working tree. I however suspect "git bisect" requires working tree. Is
   this something we want to fix?
 - Further, perhaps should we default to this mode inside a bare
   repository?

Christian, do you think of anything else? Also do you see flaws in our reasoning that updating only BISECT_HEAD and doing nothing else is a good way to do this?

Previous: Junio C HamanoNext: Christian Couder
Message 8 of 20 in “bisect: Add support for --no-checkout option”
  1. 0/8 bisect: Add support for --no-checkout optionJon Seymour, Aug 2, 2011
  2. 1/8 bisect: move argument parsing before state modification.Jon Seymour, Aug 2, 2011
  3. 2/8 bisect: use && to connect statements that are deferred with eval.Jon Seymour, Aug 2, 2011
  4. 3/8 bisect: add tests to document expected behaviour in presence of broken trees.Jon Seymour, Aug 2, 2011
  5. 4/8 bisect: introduce support for --no-checkout option.Jon Seymour, Aug 2, 2011
  6. 5/8 bisect: introduce --no-checkout support into porcelain.Jon Seymour, Aug 2, 2011
  7. Junio C HamanoAug 2, 2011
  8. Junio C HamanoAug 2, 2011
  9. Christian CouderAug 3, 2011
  10. Jon SeymourAug 3, 2011
  11. Jon SeymourAug 3, 2011
  12. Junio C HamanoAug 3, 2011
  13. Jonathan NiederAug 3, 2011
  14. Jon SeymourAug 3, 2011
  15. Jonathan NiederAug 3, 2011
  16. Christian CouderAug 3, 2011
  17. 6/8 bisect: add tests for the --no-checkout option.Jon Seymour, Aug 2, 2011
  18. 7/8 bisect: add documentation for --no-checkout option.Jon Seymour, Aug 2, 2011
  19. 8/8 bisect: change bisect function to update BISECT_HEAD, rather than HEAD.Jon Seymour, Aug 2, 2011
  20. Christian CouderAug 3, 2011

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.