Re: [PATCH v6] Add new git-related helper to contrib
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 23, 2013, 00:08 UTC
- Message-ID
- <7vvc6ah81g.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <CAMP44s1_=HSgZA=abHJ3sgDbUyfkF78qO+sR1+Aact3o7bAgLA@mail.gmail.com>
Felipe Contreras <felipe.contreras@gmail.com> writes:
Show 5 quoted lines
>> IIRC, git-gui runs two blames, one without any -C and one with (I do >> not offhand recall how many -C it uses) to show both. > > 'git blame' is a very expensive operation, perhaps we should add > another option so users don't need to run two blames to find this.
Yes, you could add a "struct origin *suspect_in_the_same_file" next to the current "struct origin *suspect" to the blame_entry in order to represent the origin you would get if you were to stop at a "move across files" event, and keep digging, when you are operating under "-C -C" or higher mode.
That would make the result just as expensive as a single run of "-C -C" (or higher mode) [*1*] without having to run an extra "git blame" without any -C (even though that mode is much cheaper).
Representing the result for a terminal with reasonable width might become unwieldy, but for --porcelain output format that should not be a problem.
[Footnote]
*1* It would make it slightly more expensive than the current code,
as it is very likely that you have to split a single blame_entry
into many separate pieces.