Re: RFH - git-log variant that _does_ search through diffs
- From
Jeff King <peff@peff.net>
- Date
- Jun 30, 2009, 04:03 UTC
- Message-ID
- <20090630040337.GA23741@sigio.peff.net>
- In-Reply-To
- <279b37b20906291708g67da3a75p316ea4893f02666a@mail.gmail.com>
On Mon, Jun 29, 2009 at 05:08:47PM -0700, Eric Raible wrote:
> [Surely this has been address before, but I wasn't able to find it...]
There is some discussion here:
http://article.gmane.org/gmane.comp.version-control.git/112077
Show 8 quoted lines
> The documentation for git-log -S includes: > > "Look for differences that introduce or remove an instance of <string>. > Note that this is different than the string simply appearing in diff output" > > But I want to do that "different" thing (IOW I want search the diff output). > > So must I loop through git-rev-list, grepping git-diff output on each commit?
Currently, yes. There is no way to do it internally. A patch to implement it would probably be accepted, though (see the thread I mentioned above for more details).
You can at least combine rev-list and diff into one command, and grep like this (for 'foo'):
git log -z -p | perl -0ne 'print if /^[-+].*foo/m' | tr '\0' '\n'
-Peff