Re: [PATCH/RFC] blame: accept multiple -L ranges
On Tue, Jul 9, 2013 at 2:55 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 29 quoted lines
> Eric Sunshine <sunshine@sunshineco.com> writes:
>
>> On Tue, Jul 9, 2013 at 1:42 PM, Thomas Rast <trast@inf.ethz.ch> wrote:
>>> Junio C Hamano <gitster@pobox.com> writes:
>>>
>>>> (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).
>>>
>>> So passing several -L arguments does not blame the union of what each
>>> argument would blame individually? Doesn't that make it rather harder
>>> to explain?
>>
>> I don't think Junio meant to imply that. Collecting the blame ranges
>> can/should be a distinct step from coalescing them. Junio is saying
>> that an -L /re/ range search should start after the maximum line
>> number already specified by any preceding range.
>
> I am not sure if I want "maximum specified so far". I meant "start
> searching at the last location", e.g.
>
> -L 100,200 -L 4,6 -L /A/,+20
>
> would want to find the first A after line 6, not after line 200.
Show 7 quoted lines
>
>> Once all input ranges
>> are collected, they can be coalesced. (If a -L /re/ range happens to
>> be coalesced with or into some other range, that's fine: you're still
>> seeing blame output for the requested lines.)
>
> Yes.