All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adam Dinwoodie <adam@dinwoodie.org>
To: "Martin Ågren" <martin.agren@gmail.com>
Cc: Git Mailing List <git@vger.kernel.org>,
	Ramkumar Ramachandra <artagnon@gmail.com>,
	Phil Hord <phil.hord@gmail.com>,
	Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH] diff-options.txt: correct command syntax
Date: Sun, 2 Feb 2020 20:47:39 +0000	[thread overview]
Message-ID: <20200202204739.GA24686@dinwoodie.org> (raw)
In-Reply-To: <CAN0heSoxgsNDbi_tbxEoSSaGOxoJYArqYa-cLu1sPWVvH6wkFg@mail.gmail.com>

On Sunday 02 February 2020 at 08:45 pm +0100, Martin Ågren wrote:
> Hi Adam,
> 
> On Sun, 2 Feb 2020 at 20:24, Adam Dinwoodie <adam@dinwoodie.org> wrote:
> >
> > Change the example arguments in the description of the -G diff argument
> > to be consistent throughout the description.
> >
> > Signed-off-by: Adam Dinwoodie <adam@dinwoodie.org>
> > ---
> >  Documentation/diff-options.txt | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt
> > index 09faee3b44..84a74cb2da 100644
> > --- a/Documentation/diff-options.txt
> > +++ b/Documentation/diff-options.txt
> > @@ -561,19 +561,19 @@ Binary files are searched as well.
> >  -G<regex>::
> >         Look for differences whose patch text contains added/removed
> >         lines that match <regex>.
> >  +
> >  To illustrate the difference between `-S<regex> --pickaxe-regex` and
> >  `-G<regex>`, consider a commit with the following diff in the same
> >  file:
> >  +
> >  ----
> >  +    return !regexec(regexp, two->ptr, 1, &regmatch, 0);
> >  ...
> >  -    hit = !regexec(regexp, mf2.ptr, 1, &regmatch, 0);
> >  ----
> >  +
> > -While `git log -G"regexec\(regexp"` will show this commit, `git log
> > --S"regexec\(regexp" --pickaxe-regex` will not (because the number of
> > +While `git log -G<regex>` will show this commit, `git log
> > +-S<regex> --pickaxe-regex` will not (because the number of
> >  occurrences of that string did not change).
> 
> I don't think this is correct. "<regex>" is a placeholder and this
> example wants to use a real-world regex instead of the placeholder.
> Maybe this could be made clearer by having an example that does not try
> to grep in regex-code using the regex "regexec\(regexp".
> 
> Maybe instead of "regexec", "regexp" and "regmatch", this example could
> use words from some other domain? Would something like this be clearer?
> 
>  To illustrate the difference between `-S<regex> --pickaxe-regex` and
>  `-G<regex>`, consider a commit with the following diff in the same
>  file:
>  +
>  ----
>  +    return !frotz(nitfol, two->ptr, 1, 0);
>  ...
>  -    hit = !frotz(nitfol, mf2.ptr, 1, 0);
>  ----
>  +
>  While `git log -G"frotz\(nitfol"` will show this commit, `git log
>  -S"frotz\(nitfol" --pickaxe-regex` will not (because the number of
>  occurrences of that string did not change).

Ah, thank you!  I had completely misread what these examples were trying
to achieve.  I think your example (or indeed anything from a different
domain) would have avoided me getting confused in the first place.
Although I'm much less fussed now I realise the problem here was
entirely my understanding rather than an error in the docs.

> BTW, I wonder what "in the same file" tries to say -- my hunch is we
> could drop those words without any loss of correctness or readability.
> Would you agree?

I think "in the same file" is meaningful here: as I understand it both
forms would find a commit that removed a line from one file and added it
back to a _different_ file, but only the -G form would pick it when
removed and added lines are in the same file.

Adam

  reply	other threads:[~2020-02-02 20:47 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-02 19:22 [PATCH] diff-options.txt: correct command syntax Adam Dinwoodie
2020-02-02 19:45 ` Martin Ågren
2020-02-02 20:47   ` Adam Dinwoodie [this message]
2020-02-03  6:24     ` Martin Ågren
2020-02-06 20:53     ` [PATCH] diff-options.txt: avoid "regex" overload in example Martin Ågren
2020-02-08 23:24       ` Taylor Blau
2020-02-09 17:25         ` Junio C Hamano

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

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

  git send-email \
    --in-reply-to=20200202204739.GA24686@dinwoodie.org \
    --to=adam@dinwoodie.org \
    --cc=artagnon@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=martin.agren@gmail.com \
    --cc=phil.hord@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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.