Re: git log -S or -G
- Date: Sun, 07 Oct 2018 09:48:23 +0900
- From: Junio C Hamano <gitster@xxxxxxxxx>
- Subject: 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
> 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.