log: teach --invert-grep option
commit22dfa8a23de4bbb274027736edd3bd311dda2981
authorChristoph Junghans <ottxor@gentoo.org>
Tue, 13 Jan 2015 01:33:32 +0000 (12 18:33 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 13 Jan 2015 18:20:32 +0000 (13 10:20 -0800)
tree98607b458d72d693ed6ee33005d785c05b7b7bc6
parent3c84ac86fc896c108b789b8eb26b169cc0e8088a
log: teach --invert-grep option

"git log --grep=<string>" shows only commits with messages that
match the given string, but sometimes it is useful to be able to
show only commits that do *not* have certain messages (e.g. "show
me ones that are not FIXUP commits").

Originally, we had the invert-grep flag in grep_opt, but because
"git grep --invert-grep" does not make sense except in conjunction
with "--files-with-matches", which is already covered by
"--files-without-matches", it was moved it to revisions structure.
To have the flag there expresses the function to the feature better.

When the newly inserted two tests run, the history would have commits
with messages "initial", "second", "third", "fourth", "fifth", "sixth"
and "Second", committed in this order.  The commits that does not match
either "th" or "Sec" is "second" and "initial". For the case insensitive
case only "initial" matches.

Signed-off-by: Christoph Junghans <ottxor@gentoo.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/rev-list-options.txt
contrib/completion/git-completion.bash
revision.c
revision.h
t/t4202-log.sh