From: Junio C Hamano Date: Thu, 23 May 2013 00:08:43 GMT Subject: Re: [PATCH v6] Add new git-related helper to contrib Message-ID: <7vvc6ah81g.fsf@alter.siamese.dyndns.org> In-Reply-To: Felipe Contreras writes: >> 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.