Jon Seymour [off-list ref] writes:
On Tue, Aug 2, 2011 at 3:33 AM, Junio C Hamano [off-list ref] wrote:
quoted
Jon Seymour [off-list ref] writes:
quoted
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.
On Tue, Aug 2, 2011 at 9:33 AM, Junio C Hamano [off-list ref] wrote:
Jon Seymour [off-list ref] writes:
quoted
On Tue, Aug 2, 2011 at 3:33 AM, Junio C Hamano [off-list ref] wrote:
quoted
Jon Seymour [off-list ref] writes:
quoted
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.
On Tue, Aug 2, 2011 at 11:15 AM, Jon Seymour [off-list ref] wrote:
On Tue, Aug 2, 2011 at 9:33 AM, Junio C Hamano [off-list ref] wrote:
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.
To clarify: --bisect-head would default to HEAD if mode is checkout,
to BISECT_HEAD if the mode is update-ref.
jon.