All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergey Organov <sorganov@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Matthieu Moy <Matthieu.Moy@univ-lyon1.fr>,
	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 21:21:17 +0300	[thread overview]
Message-ID: <87h6shif6q.fsf@osv.gnss.ru> (raw)
In-Reply-To: <xmqqo7mpqy6g.fsf@gitster.g> (Junio C. Hamano's message of "Fri, 12 May 2023 10:03:51 -0700")

Junio C Hamano <gitster@pobox.com> writes:

> Matthieu Moy <Matthieu.Moy@univ-lyon1.fr> writes:
>
>> https://public-inbox.org/git/51E3DC47.70107@googlemail.com/
>>
>> 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.
>>
>> 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.

So --no-patch, if it were made to disable only --patch from the
beginning, would still serve the purpose of solving of the original
problem, right? Please notice that --cc produces no output without
--patch. Thus, making --no-patch a synonym for -s was a mistake in the
first place that leaked through review process at that time, and

   git show --format="%ad" --no-patch

will still work the same way even if we fix --no-patch to disable
--patch only.

>
> Thanks for double checking.  It matches my recollection that we (you
> the author and other reviewers as well) added "--no-patch" back then
> to mean "no output from diff machinery, exactly the same as '-s' but
> use a name that is more discoverable".
>
>> 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
>
> Yeah.  If this were 10 years ago and we were designing from scratch,
> the "no output from diff machinery, more discoverable alias for
> '-s'" would have been "--silent" or "--squelch" and we would made
> any "--no-<format>" to defeat only "--<format>".
>
> It is a different matter if we can safely change what "--no-patch"
> means _now_.  Given that "--no-patch" was introduced for the
> explicit purpose of giving "-s" a name that is easier to remember,
> and given that in the 10 years since we did so, we may have acquired
> at least a few more end users of Git than we used to have, hopefully
> your change have helped them discover and learn to use "--no-patch"
> to defeat any "--<format>" they gave earlier as initial options in
> their script, which will be broken and need to be updated to use a
> much less discoverable "-s".

Fortunately, whoever used --no-patch are very unlikely to actually rely
on it being a synonym for "-s", as it was always enough for them that
--no-patch disables --patch, that will still hold after the fix.

Taking this into account it should be pretty safe to fix that old
mistake, and then to address "-s" discoverability issue separately.

Finally, this safety concern is even less attractive provided recent
"-s" fix changed behavior more aggressively yet gets no such resistance.

Thanks,
-- Sergey Organov

  reply	other threads:[~2023-05-12 18:21 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 [this message]
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

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=87h6shif6q.fsf@osv.gnss.ru \
    --to=sorganov@gmail.com \
    --cc=Matthieu.Moy@univ-lyon1.fr \
    --cc=felipe.contreras@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.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.