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

Re: [PATCH 0/5] bisect: Add support for a --no-checkout option.

From
Jon Seymour <jon.seymour@gmail.com>
Date
Aug 1, 2011, 05:27 UTC
Message-ID
<CAH3AnroxjFiv25L3N1CQWW6S4vMS7C42b5AzXO09u9091S9asA@mail.gmail.com>
In-Reply-To
<7v39hmkkth.fsf@alter.siamese.dyndns.org>
On Mon, Aug 1, 2011 at 11:00 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 40 quoted lines
> Christian Couder <chriscool@tuxfamily.org> writes:
>
>> On Saturday 30 July 2011 15:58:16 Jon Seymour wrote:
>>> On Sat, Jul 30, 2011 at 11:48 PM, Christian Couder wrote:
>>> >
>>> > Sorry but I didn't reply to your previous email when you asked about a
>>> > "--no- checkout[=<ref>]" compromise. I thought that Junio would reply
>>> > and then I forgot about it.
>>> >
>>> > My opinion is that if you really want to be able to use another ref, then
>>> > there should be a special "--update-ref=<ref>" or "--use-ref=<ref>"
>>> > option that is different from "--no-checkout".
>>> >
>>> > "--no-checkout" looks like a boolean argument. And
>>> > "--no-checkout[=<ref>]" may make the user think that this option will
>>> > not checkout <ref>, and then it leads to the confusing question "but why
>>> > would it checkout this f&#@ing ref in the first place?".
>>>
>>> Good suggestions.
>>>
>>> So, to confirm that I understand:
>>>
>>>     use --no-checkout to control (no-)checkout behaviour and
>>> --update-ref to specify a ref other than HEAD?
>>
>> Yeah, I think it would be less confusing like this.
>
> When used without "--no-checkout" option, "bisect" need to check-out the
> candidate version. What good would it do if it does _not_ update HEAD when
> it does so?
>
> While you are correct to point out --[no-]checkout is a boolean option,
> this "we do not update HEAD but update this other thing" is not orthogonal
> to the option. It does not make sense when we actually touch the working
> tree.
>
> My preference is not to play games with "we can specify a ref other than
> HEAD" until somebody can demonstrate why it is a feature "because we need
> to be able to do so in such and such times", not merely "because we can".
>

Conceptually, I do think HEAD and "state of current bisection" are different concepts and so it wouldn't hurt to be able to use a different reference for this purpose.

The main argument I have is the one that you raised earlier regarding potential user confusion that would result from the somewhat "spurious" (from the point of view of the naive user) differences that might arise between the working tree, index and HEAD during the course of the bisection process.

Of course, we can explain this in the documentation of the --no-checkout option, so this needn't be a huge concern.

It might become more important if someone ever writes a tool that does a bisection on the user's behalf. In this case, aborting the tool might leave the HEAD in, what appears to the user, a confused state. It would probably simplify error handling and abort processing in this case if the tool never had to touch the HEAD reference at all.

That said, such concerns are hypothetical for now and for my primary use-case for tree-less bisection (e.g. inspecting a damaged repo) I can live with using HEAD for this purpose.

So, I will re-roll with references to --update-ref omitted.
Expect a v11 to the list, in the next half day or so.
jon.
Previous: Christian CouderNext: Junio C Hamano
Message 19 of 26 in “bisect: Add support for a --no-checkout option.”
  1. 0/5 bisect: Add support for a --no-checkout option.Jon Seymour, Jul 30, 2011
  2. 1/5 bisect: add tests to document expected behaviour in presence of broken trees.Jon Seymour, Jul 30, 2011
  3. 2/5 bisect: introduce support for --no-checkout=<ref> option.Jon Seymour, Jul 30, 2011
  4. Christian CouderJul 30, 2011
  5. 3/5 bisect: introduce --no-checkout[=<ref>] support into porcelain.Jon Seymour, Jul 30, 2011
  6. Christian CouderJul 30, 2011
  7. Jon SeymourJul 30, 2011
  8. Christian CouderJul 31, 2011
  9. Junio C HamanoAug 1, 2011
  10. Christian CouderAug 1, 2011
  11. 4/5 bisect: add tests for the --no-checkout option.Jon Seymour, Jul 30, 2011
  12. 5/5 bisect: add documentation for --no-checkout[=<ref>] option.Jon Seymour, Jul 30, 2011
  13. Jon SeymourJul 30, 2011
  14. Christian CouderJul 30, 2011
  15. Jon SeymourJul 30, 2011
  16. Christian CouderJul 30, 2011
  17. Junio C HamanoAug 1, 2011
  18. Christian CouderAug 1, 2011
  19. Jon SeymourAug 1, 2011
  20. Junio C HamanoAug 1, 2011
  21. Jon SeymourAug 1, 2011
  22. Junio C HamanoAug 1, 2011
  23. Jon SeymourAug 2, 2011
  24. Jon SeymourAug 2, 2011
  25. Junio C HamanoAug 2, 2011
  26. Jon SeymourAug 2, 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.