Web lists-archives.com

Re: git log -S or -G

On Sun, 7 Oct 2018, Junio C Hamano wrote:

> Æ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.

There is still the question of whether the number of occurrences of foo
decreases or increases.