git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Supporting "-v" option for git-log

From
Jeff King <peff@peff.net>
Date
May 25, 2011, 13:29 UTC
Message-ID
<20110525132816.GA6709@sigill.intra.peff.net>
In-Reply-To
<BANLkTikT4s+Twfip2g7Zo-XcML1Wbd3qBg@mail.gmail.com>
On Wed, May 25, 2011 at 02:28:12PM +0300, Elazar Leibovich wrote:
Show 7 quoted lines
> On Wed, May 25, 2011 at 2:21 PM, Tim Mazid <timmazid@hotmail.com> wrote:
> >
> > Well, personally, I've never used the --grep option. I pipe it through
> > grep, where I can supply options such as -v.
> 
> But then you must use single-line commits output. Which is
> inconvenient if you want to read all the commit message.
You can use perl to consider records larger than a single line, like:
  git log -z | perl -ln0e 'print unless /your pattern/'

But of course that is somewhat inconvenient to type, and is somewhat slower than the internal grep.

Show 5 quoted lines
> Now that I think of it, we already have the '--not' option for
> revision specifiers. Why won't we use it for grep patterns? That way
> -v will not be overloaded (it usually means verbose). For example
> 
>     git log --all --not --grep A --grep B

The problem is that "--not" already has a meaning, and the scope of that meaning is different than what you propose. That is, in this command:

  git log a --not b c

The "--not" applies to both "b" and "c". So you are changing the meaning of the existing:

  git log a --not --grep b c

(which now means "grep for b, but do not include commits in c"). And even if we wanted to do that, there is a parsing ambiguity. Does the "--not" apply _just_ to the grep, or does it also include "not c"?

Which is a shame, because we already have all of the code for "--and", "--or", and "--not" in git-grep. It is just a syntactic conflict. I think you could get away with "--grep-and", "--grep-or", and "--grep-not". They are obviously less nice to type, but there would be not conflict.

-Peff
Previous: Elazar LeibovichNext: Jakub Narebski
Message 9 of 14 in “Supporting "-v" option for git-log”
  1. Elazar LeibovichMay 25, 2011
  2. Tim MazidMay 25, 2011
  3. Elazar LeibovichMay 25, 2011
  4. Tim MazidMay 25, 2011
  5. Tim MazidMay 25, 2011
  6. Elazar LeibovichMay 25, 2011
  7. Tim MazidMay 25, 2011
  8. Elazar LeibovichMay 25, 2011
  9. Jeff KingMay 25, 2011
  10. Jakub NarebskiMay 25, 2011
  11. Jeff KingMay 25, 2011
  12. Jakub NarebskiMay 25, 2011
  13. Junio C HamanoMay 25, 2011
  14. Jeff KingMay 25, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.