Re: [PATCH 0/5] bisect: Add support for a --no-checkout option.
- From
Jon Seymour <jon.seymour@gmail.com>
- Date
- Aug 2, 2011, 01:15 UTC
- Message-ID
- <CAH3AnrrrvX64s3p_=5mrVcwx5FeO0iT8uX47remyCuCwPpOo=A@mail.gmail.com>
- In-Reply-To
- <7vaabshfmb.fsf@alter.siamese.dyndns.org>
On Tue, Aug 2, 2011 at 9:33 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 30 quoted lines
> Jon Seymour <jon.seymour@gmail.com> writes: > >> On Tue, Aug 2, 2011 at 3:33 AM, Junio C Hamano <gitster@pobox.com> wrote: >>> Jon Seymour <jon.seymour@gmail.com> writes: >>> >>>> 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. >> ... >> In this hypothetical additional series, are you happy for >> --no-checkout to become a synonym for --update-ref=HEAD in the manner >> of v8? From a technical perspective, it doesn't seem necessary to >> duplicate the state variables and parameters. > > Well, from a technical perspective, which ref is to be updated is an > option that is valid _only_ under no-checkout mode, and no-checkout mode > could be using HEAD, so I think you would need two variables. One for > "what mode are we running", and the other that is only valid under "we are > in no-checkout mode" that says "we update BISECT_HEAD". > > If no-checkout mode _never_ updates HEAD, because the normal mode _always_ > updates HEAD, you could reduce them into a single variable (i.e. if we are > updating HEAD then we are in normal mode, otherwise we are in no-checkout > mode). I actually have a mild suspicion that the no-checkout mode may > turn out to be too confusing for people if it by default updates HEAD, and > we may want to have it update something that is not HEAD by default (or > forbid --update-ref from specifying HEAD), so if that turns out to be the > approach we are going to proceed, we _might_ end up needing only one > variable, but I do not think we know it just yet. At least I don't. >
How about in the current series, I change the option parsed by bisect--helper.c to be:
--bisect-mode=checkout|update-ref
The porcelain option can still be --no-checkout (or should it be --bisect-mode too?). The porcelain will maintain a state variable called (rather than BISECT_NO_CHECKOUT).
BISECT_MODE
Then, the next series can add a --bisect-head option (instead of --update-ref) to allow the head to be varied (defaulting to BISECT_HEAD) if not specified.
Sound ok?
jon.