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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Aug 1, 2011 at 11:00 AM, Junio C Hamano <gitster@xxxxxxxxx> wrote:
> Christian Couder <chriscool@xxxxxxxxxxxxx> 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.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]