Re: bug: `git log --grep ... --invert-grep --author=...` negates / ignores --author
From: Jeff King <hidden>
Date: 2017-05-31 21:40:24
On Wed, May 31, 2017 at 08:08:54PM +0200, Ævar Arnfjörð Bjarmason wrote:
$ git log --grep=bar --author=Ævar --pretty=format:%an -100 origin/pu
|sort|uniq -c|sort -nr
5 Ævar Arnfjörð Bjarmason
$ git log --author=Ævar --pretty=format:%an -100 origin/pu |sort|uniq
-c|sort -nr
100 Ævar Arnfjörð Bjarmason
$ git log --grep=bar --invert-grep --author=Ævar --pretty=format:%an
-100 origin/pu |sort|uniq -c|sort -nr
78 Junio C Hamano
14 Jeff King
2 Andreas Heiduk
1 Sahil Dua
1 Rikard Falkeborn
1 Johannes Sixt
1 Johannes Schindelin
1 Ben Peart
1 Ævar Arnfjörð Bjarmason
That last command should only find my commits, but instead --author is
discarded.
I would have thought that the last command wouldn't find _any_ of your
commits. Don't we consider --author a greppable pattern and invert it?
By itself:
$ git log --author=Ævar --invert-grep --format=%an -100 origin/pu |
sort | uniq -c | sort -rn
79 Junio C Hamano
8 Stefan Beller
8 Jeff King
1 Sahil Dua
1 Rikard Falkeborn
1 Johannes Sixt
1 Johannes Schindelin
1 Andreas Heiduk
So that makes sense from the "--author is invertable" world-view.
But I'm puzzled that you show up at all when --grep=bar is added (and
moreover, that we get _one_ commit from you, not the 5 found in your
initial command). That seems like a bug.
-Peff