Web lists-archives.com

Re: git log -S or -G

Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes:

> On Sat, Oct 6, 2018 at 5:16 PM Julia Lawall <julia.lawall@xxxxxxx> wrote:
>> Git log -S or -G make it possible to find commits that have particular
>> words in the changed lines.  Sometimes it would be helpful to search for
>> words in the removed lines or in the added lines specifically.  From the
>> implementation, I had the impression that this would be easy to implement.
>> The main question would be how to allow the user to specify what is
>> wanted.
> As far as I know this isn't possible. The --diff-filter option is
> similar in spirit, but e.g. adding "foo" and then removing it from an
> existing file will both be covered under --diff-filter=M, so that
> isn't what you're looking for.

I agree with Julia that UI to the feature is harder than the
machinery to implement the feature to add "I am interested in seeing
a patch that contains a hunk that adds 'foo' but am not interested
in removal" (or vice versa) for -G.  You tweak
diffcore-pickaxe.c::diffgrep_consume() and you'are done.

Doing the same for -S is much harder at the machinery level, as it
performs its thing without internally running "diff" twice, but just
counts the number of occurrences of 'foo'---that is sufficient for
its intended use, and more efficient.