Re: [PATCH/RFC] blame: accept multiple -L ranges
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Jul 9, 2013, 17:17 UTC
- Message-ID
- <CAPig+cSxiSWwZ6QANWtTt7ioAewD0tk62V=pkdiT9JLw3Fzb9g@mail.gmail.com>
- In-Reply-To
- <7v38rnwuvb.fsf@alter.siamese.dyndns.org>
On Tue, Jul 9, 2013 at 12:39 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 15 quoted lines
> Eric Sunshine <sunshine@sunshineco.com> writes: > >> As implemented by this patch, the behavior of git-blame with multiple >> -L's is consistent with that of git-log with multiple -L's. The >> implemented behavior feels intuitive to me, but I can see how the >> behavior you suggest could feel intuitive to others. >> >> If I re-do the patch to work the way you describe above, how should we >> deal with the inconsistent behaviors between the two commands? > > The suggestion to error out was more about "start simple, strict and > obvious to make it easy to explain" and nothing else. If we start > with a simple and strict version, we can later loosen it without > making an input that was valid earlier invalid. If we start with > too loose, on the other hand, it would be hard to tighten it later.
Makes sense.
Show 22 quoted lines
> But the only two things I care deeply about are, in a file whose > contents is: > > C > B > A > B > C > D > > (1) The range "-L /A/,/B/" finds the first A from the beginning, > and then chooses B that comes _after_ it, making it equivalent > to -L3,4 (not -L3,2 or -L2,3). > > (2) In the ranges "-L <anything>,/B/ -L /C/,<anything>", the > beginning of the second range is found by choosing C that comes > _after_ the end of the previous range (/B/ may choose either > the second or the 4th line, and the only C that comes after > either of them is the 5th line and that is where the second > range should begin, not at the beginning of the file). The > same for "-L 1,3 -L /C/" (only C that comes after 3 is eligible > to be the beginning of the second range).
Thinking aloud: Thus, for "-L 1,5 -L /C/", no C would be found.
> I view it as a nice addition to coalesce two overlapping ranges > given exactly by numbers, e.g. "-L 100,200 -L 50,102". I do not > have a strong objection to it, as long as it does not interfere > negatively with ranges specified by patterns.
Okay, I will base my rewrite upon the above constraints, along with other observations from your initial response.
-- ES