All of lore.kernel.org
 help / color / mirror / Atom feed
From: Felipe Contreras <felipe.contreras@gmail.com>
To: Matthieu Moy <Matthieu.Moy@univ-lyon1.fr>,
	Junio C Hamano <gitster@pobox.com>,
	Sergey Organov <sorganov@gmail.com>
Cc: Felipe Contreras <felipe.contreras@gmail.com>,
	"git@vger.kernel.org" <git@vger.kernel.org>
Subject: Re: Can we clarify the purpose of `git diff -s`?
Date: Fri, 12 May 2023 13:17:03 -0600	[thread overview]
Message-ID: <645e90af2eccb_21989f294af@chronos.notmuch> (raw)
In-Reply-To: <4f713a29-1a34-2f71-ee54-c01020be903a@univ-lyon1.fr>

Matthieu Moy wrote:
> [ I apologize for not being more reactive the last few years. I still 
> love Git and this ml, but I'm struggling to find time to contribute. ]
> 
> On 5/11/23 19:37, Junio C Hamano wrote:
> > The behaviour came in the v1.8.4 days with a series that was merged
> > by e2ecd252 (Merge branch 'mm/diff-no-patch-synonym-to-s',
> > 2013-07-22), which
> > 
> >   * made "--no-patch" a synonym for "-s";
> > 
> >   * fixed "-s --patch", in which the effect of "-s" got stuck and did
> >     not allow the patch output to be re-enabled again with "--patch";
> > 
> >   * updated documentation to explain "--no-patch" as a synonym for
> >     "-s".
> > 
> > While it is very clear that the intent of the author was to make it
> > a synonym for "-s" and not a "feature-wise enable/disable" option,
> > that is what we've run with for the past 10 years.
> 
> That's too old for me to remember exactly my state of mind, but if you 
> want to do a bit of archeology, the origin is there:
> 
> https://public-inbox.org/git/51E3DC47.70107@googlemail.com/

Yes, I had already sent a link to that thread [1].

> Essentially, Stefan Beller was using 'git show --format="%ad"' and 
> expecting it to show only the author date, and for merge commits it also 
> showed the patch (--cc). I suggested -s and noticed that the option 
> wasn't easily discoverable, hence the patch series to better document it 
> and add --no-patch as a synonym.

That was my understanding. So the goal was to make the silencing of `git show`
output more accessible.

> Probably I did not get all the subtleties of the different kinds of 
> outputs. I guess I considered the output of diff to be the one specified 
> by --format plus the patch (not considering --raw, --stat & friends), 
> hence "get only the output specified by --format" and "disable the 
> patch" were synonym to me. Looking more closely, it's rather clear to me 
> they are not, and that
> 
>    git show --raw --patch --no-patch
> 
> should be equivalent to
> 
>    git show --raw

Indeed, but at the time such funcionality was not easy to achieve, on the other
hand making `--no-patch` be synonymous with `-s` was easy, so that's the path
that was followed. But that was not the goal, that was a means to an end.

Adding `--silent` as a synonym to `-s` would have also served a similar goal.

I sent a patch to add such `--silent` alias [2], and I also sent a patch to
decouple `--no-patch` from `-s` [3].

All these three keep working as it was originally intended by your patch:

 * git show -s
 * git show --silent
 * git show --no-patch

The only difference is that now these are different:

 * git show --patch --raw --no-patch
 * git show --patch --raw --silent

Which wasn't considered back then.

Cheers.

[1] https://lore.kernel.org/git/645d3122bd1d2_26011a2947a@chronos.notmuch/
[2] https://lore.kernel.org/git/20230512080339.2186324-7-felipe.contreras@gmail.com/
[3] https://lore.kernel.org/git/20230512080339.2186324-6-felipe.contreras@gmail.com/

-- 
Felipe Contreras

      parent reply	other threads:[~2023-05-12 19:17 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-11  3:14 Can we clarify the purpose of `git diff -s`? Felipe Contreras
2023-05-11 11:59 ` Sergey Organov
2023-05-11 16:26   ` Junio C Hamano
2023-05-11 17:37   ` Junio C Hamano
2023-05-11 18:04     ` Sergey Organov
2023-05-11 18:27       ` Junio C Hamano
2023-05-11 18:36       ` Felipe Contreras
2023-05-11 18:17     ` Felipe Contreras
2023-05-11 17:41   ` Felipe Contreras
2023-05-11 18:31     ` Sergey Organov
2023-05-11 19:10       ` Felipe Contreras
2023-05-11 19:32         ` Sergey Organov
2023-05-11 19:54           ` Felipe Contreras
2023-05-11 20:24             ` Sergey Organov
2023-05-11 20:59               ` Felipe Contreras
2023-05-11 22:49                 ` Sergey Organov
2023-05-11 23:28                   ` Felipe Contreras
2023-05-12  8:40                     ` Sergey Organov
2023-05-12 19:19                       ` Felipe Contreras
     [not found]   ` <5bb24e0208dd4a8ca5f6697d578f3ae0@SAMBXP02.univ-lyon1.fr>
2023-05-12  8:15     ` Matthieu Moy
2023-05-12 17:03       ` Junio C Hamano
2023-05-12 18:21         ` Sergey Organov
2023-05-12 19:21           ` Junio C Hamano
2023-05-12 19:34             ` Junio C Hamano
2023-05-12 20:28             ` Felipe Contreras
2023-05-12 20:47               ` Junio C Hamano
2023-05-12 21:01                 ` Felipe Contreras
2023-05-12 21:47                   ` Junio C Hamano
2023-05-12 21:48                     ` Junio C Hamano
2023-05-12 23:21                     ` Felipe Contreras
2023-05-12 21:41                 ` Sergey Organov
2023-05-12 22:17                   ` Junio C Hamano
2023-05-12 22:47                     ` Sergey Organov
2023-05-12 23:07                   ` Felipe Contreras
2023-05-13 14:58                     ` Philip Oakley
2023-05-13 17:45                       ` Sergey Organov
2023-05-12 19:47           ` Felipe Contreras
2023-05-12 19:34         ` Felipe Contreras
2023-05-12 19:17       ` Felipe Contreras [this message]

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=645e90af2eccb_21989f294af@chronos.notmuch \
    --to=felipe.contreras@gmail.com \
    --cc=Matthieu.Moy@univ-lyon1.fr \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=sorganov@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.