With Git, I find the pickaxe tool (&quot;git log -S&quot;) to be useful for this purpose. From the man page:<p>-S&lt;string&gt;<p><pre><code>    Look for differences that change the number of occurrences of the specified string (i.e. addition&#x2F;deletion) in a file. Intended for the scripter’s use.

    It is useful when you’re looking for an exact block of code (like a struct), and want to know the history of that block since it first came into being: use the feature iteratively to feed the interesting block in the preimage back into -S, and keep going until you get the very first version of the block.</code></pre>