git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff King <peff@peff.net>
To: "孙世龙 sunshilong" <sunshilong369@gmail.com>
Cc: Carlo Arenas <carenas@gmail.com>, git@vger.kernel.org
Subject: Re: How can I search git log with ceratin keyword but without the other keyword?
Date: Fri, 17 Jul 2020 02:33:24 -0400	[thread overview]
Message-ID: <20200717063324.GB1179001@coredump.intra.peff.net> (raw)
In-Reply-To: <CAAvDm6Z6SA8rYYHaFT=APBSx0tM+5rHseP+fRLufgDxvEthsww@mail.gmail.com>

On Fri, Jul 17, 2020 at 09:45:26AM +0800, 孙世龙 sunshilong wrote:

> I wonder why this command doesn't work well.
> I intend to find the comment with the keyword "12" but without "comments"
> whereas the output is something like this:
> 
> git log --perl-regexp --all-match --grep=12 --grep '\b(?!comments\b)\w+'
> commit f5b6c3e33bd2559d6976b1d589071a5928992601
> Author: sunshilong <sunshilong369@gmail.com>
> Date:   2020-04-12 23:00:29 +0800
> 
>     comments 2020.04.12 ng

I think this is the thing I was mentioning earlier. That negative
lookahead means the second one wouldn't match "comments", but it would
still match "2020.04.12" or "ng". So it won't do what you want.

I can't think of a way to do what you want just a regex, but maybe
somebody more clever than me can.

The natural thing to me would be the equivalent of:

  git grep -e 12 --and --not -e comments

The underlying grep machinery in Git understands how to compose multiple
patterns like this, and the command above really does work (though of
course it is searching for lines in a file and not commit messages).

But none of that is exposed via the command-line of "git log". I think
it would be possible to do so, but I'm not sure how tricky it would be
(certainly one complication is that "--not" already means something else
there, but presumably we could have "--grep-and", "--grep-not", etc).

-Peff

  reply	other threads:[~2020-07-17  6:33 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-10  4:31 How can I search git log with ceratin keyword but without the other keyword? 孙世龙 sunshilong
2020-07-10  8:14 ` Carlo Arenas
2020-07-11  5:48   ` 孙世龙 sunshilong
2020-07-16 15:31     ` Jeff King
2020-07-17  1:45       ` 孙世龙 sunshilong
2020-07-17  6:33         ` Jeff King [this message]
2020-07-17  7:45           ` Junio C Hamano
2020-07-17 10:19             ` Junio C Hamano
2020-07-18  4:51               ` 孙世龙 sunshilong
2020-07-18 18:07                 ` Junio C Hamano
2020-07-19  5:28                   ` 孙世龙 sunshilong
2020-07-19  8:26                     ` Carlo Arenas
2020-07-20 17:50                       ` Junio C Hamano
2020-07-22  6:46                         ` Carlo Arenas
2020-07-17 10:27             ` 孙世龙 sunshilong
2020-07-17 10:42           ` 孙世龙 sunshilong
     [not found] <BYAPR21MB11587632058438090FE265B8E0DA9@BYAPR21MB1158.namprd21.prod.outlook.com>
2020-12-27 23:45 ` Dan Moseley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200717063324.GB1179001@coredump.intra.peff.net \
    --to=peff@peff.net \
    --cc=carenas@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=sunshilong369@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).