From: Jeff King Date: Tue, 30 Jun 2009 04:03:37 GMT Subject: Re: RFH - git-log variant that _does_ search through diffs 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 > The documentation for git-log -S includes: > > "Look for differences that introduce or remove an instance of . > 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