Re: [RFC/PATCH]: reverse bisect v 2.0
- From
Jeff King <peff@peff.net>
- Date
- Oct 4, 2011, 10:30 UTC
- Message-ID
- <20111004103056.GB11236@sigill.intra.peff.net>
- In-Reply-To
- <7vfwjaggd2.fsf@alter.siamese.dyndns.org>
On Mon, Oct 03, 2011 at 10:00:25AM -0700, Junio C Hamano wrote:
Show 9 quoted lines
> > I like this idea a lot. My "yes/no" thing was a "if I were designing > > bisect from scratch today..." suggestion, but having something like > > --used-to makes it a natural addition to the regular good/bad interface. > > And I really like the prompt to help people remember what it is they're > > declaring each time. > > I forgot to clarify that "tested" was only to help users who wanted > reminder; if the user is confident with the usual "yes/no", the > interactivity is not required.
That makes sense to me. I think in either case, it would be nice to mention the --used-to text when we take each step. We're already outputting some status information there (like how many commits left).
Show 9 quoted lines
> > However, --used-to feels a bit backwards to me. I think of it as > > "--has-property" or something similar. > > I do not think --used-to='frotz says xyzzy' is a good phrasing at all; it > is grammatically incorrect. But --has-property has one large downside. At > least --used-to makes it clear that the user is supposed to decribe the > property of the tree in the past. > > Let's step back a bit to understand why I think this is not optimal.
What you say makes sense, but isn't it just a problem of the name? IOW, a much better name than "--has-property" would be "--started-to". That would imply the exact same cutoff as --used-to, but negate only the yes/no bit.
So you could say:
# find a bug: git bisect start --used-to='work with --foo=bar'
# or if you are looking for a specific undesirable behavior, you might # write: git bisect start --used-to='not segfault with --foo=bar'
# but now you have a negation in your condition. So it might be more # natural to write it as: git bisect start --started-to='segfault with --foo=bar'
# Or we can find a feature git bisect start --used-to='not respect core.foo'
# but again, we have a negation. Instead: git bisect start --started-to='respect core.foo'
And the --started-to would literally be implemented as flipping the meaning of "git bisect yes" and "git bisect no", and nothing more. IOW, it's just another way of spelling "git bisect --reverse".
I know you wanted to emphasize the "older tree has this property" of --used-to, but I think it is clear with --started-to that the older tree obviously obviously had the negation of the property.
-Peff