Julian Foad wrote on Wed, Jun 12, 2013 at 16:41:59 +0100:
> Prabhu wrote:
>
> > On 06/12/2013 05:55 PM, Julian Foad wrote:
> >> I have thought before that it would sometimes be useful to include blame
> >> information on the gaps between lines. For each gap between adjacent
> >> lines (and
> >> before the first and after the last line), there is a revision in which
> >> any text
> >> between these two lines was deleted.
> >>
> >> Example: blame -r1:30 foo.c@30 could produce these (revnum | line-text)
> >> pairs:
> >> r20 | "int main()"
> >> r20 | "{"
> >> r25 | NULL
> >> r30 | " return 0;"
> >> r20 | "}"
> >>
> >> where NULL means some line(s) were at this position in r24 but nothing
> >> was
> >> here in r25 up to the revision being blamed.
> >
> > How would we handle/show if the line existed in 24r but not in r25..
> > Again existed in r27 and removed in r29 ? I can't think of the UI...
>
> Blame is only intended to identify the most recent change to each line. In
> this case, we would identify the most recent change of the inter-line gap, so
> that would be r29. I think that is useful and consistent with the way Blame
> works already.
>
> As a different example, if there were two lines in that "gap" in r24, and one
> of them was removed in r25, and the second one was removed in r29, then again
> we'd only show "r29" for the gap, because that is the most recent change in
> that gap.
What about an optional output mode that prints the gaps only, but all of
them?
e.g., if I do 'blame -r 25:29', the optional output mode would print all
lines added in r26 or in r27 or in r28 that are not present in r29, and
only them.