From: Jonathan Nieder Date: Mon, 22 Mar 2010 08:10:03 GMT Subject: Re: GSoC draft proposal: Line-level history browser Message-ID: <20100322081003.GA26535@progeny.tock> In-Reply-To: <7v7hp4n6qn.fsf@alter.siamese.dyndns.org> Junio C Hamano wrote: > I am actually questioning the existence of "recursively and deeply to find > more"; the reason blame stopped at a particular commit is exactly because > there is no more Hmm, I can imagine some (mutually inconsistent) heuristics: - Suppose in the blamed commit a single isolated line changed. Then it is clear where to look next. - If the mystery code is at the beginning of the file (resp. beginning of a diff -C0 hunk), maybe it was based on the line at the same position within the previous commit. - Take the line with the lowest Levenshtein distance from the mystery code. - Expect certain common patterns of change: substituted words, whitespace changes, added arguments for a function, things like that. That said, I still don’t have a clear picture of a basic strategy. Interested, Jonathan