All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergey Organov <sorganov@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Glen Choo <chooglen@google.com>, git@vger.kernel.org
Subject: Re: so/diff-merges-more (was Re: What's cooking in git.git (Feb 2023, #01; Thu, 2))
Date: Thu, 02 Mar 2023 19:57:06 +0300	[thread overview]
Message-ID: <87wn3zqefx.fsf@osv.gnss.ru> (raw)
In-Reply-To: <xmqqr0u7ku3j.fsf@gitster.g> (Junio C. Hamano's message of "Thu, 02 Mar 2023 08:15:28 -0800")

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

> Glen Choo <chooglen@google.com> writes:
>
>>> Finally, event without "log.diffMerges-m-imply-p", the rest of the
>>> series still makes sense, so if the conclusion is to remove it, let's
>>> still merge the rest, please! Let me know, and I'll then remove the
>>> patch and will change documentation accordingly.
>>
>> Oops. Sorry, I missed this the first time I read this message. This
>> alone should have warranted a response.
>
> Hmph.  I agreed with you that the last step to add the configuration
> would not make sense unless we are planning to break users later,

It does make sense to me, and to anybody who does want -m to behave the
same sane way the rest of similar options behave. I've already got it
you don't care, but there are people here who do.

> but I have been under the impression that the remainder were OK
> clean-ups.  Perhaps it is mostly because I read them so long ago and
> forgot the details X-<.

It's not a cleanup, it's rather adding missed feature that allows to get
precise '-m' behavior with --diff-merges. To remind you, there was a
discussion back then when --diff-merges= options were introduced, do
they need to immediately cause output of diffs for merge commits, or
suppress the output till '-p' is specified as well, like '--cc'
originally did, and like '-m' still does.

The conclusion at that time was that it makes sense to take immediate
action as this allows to output diffs for merge commits only, a new
opportunity that was not present before.

However, by making such decision we lost ability to provide exact
behavior of -m using --diff-merges= set of options. This has been
pointed out later to me in the list, and felt obliged to finish
implementation by providing the feature.

  --diff-merges=hide

is exactly that.

>
>> I'm not convinced that the series makes sense without
>> "log.diffMerges-m-imply-p":
>>
>> * The main patch is
>>
>>     diff-merges: implement [no-]hide option and log.diffMergesHide config
>>
>>   which gives us a way to redefine "-m" as "--diff-merges=hide
>>   --diff-merges=on". However, we haven't seen any compelling reasons to
>>   use --diff-merges=hide [1].

I think --diff-merges should be complete and be able to provide exact "-m"
behavior, rendering the latter pure shortcut.

Complete orthogonal interfaces are good thing by themselves, and useful
applications of them are often found later. That's common knowledge.

>> I'm also fairly convinced that if we go
>>   back in time, "-m" wouldn't have the semantics of 'do nothing unless
>>   -p is also given', and I don't think we should immortalize a mistake
>>   by giving it an explicit option.

Yep, and I provided a config option that fixes this mistake. What's
wrong about it? The complete orthogonal interface finalized by the
aforementioned feature allows me to achieve this goal easily.

>>
>>   All the other patches in their current form are dependent on this
>>   patch going in.
>>
>> * diff-merges: support list of values for --diff-merges
>>
>>   This only makes sense if we want to accept multiple values, which we
>>   don't without the main patch.
>
> Now you mention it (and show example in the previous bullet point),
> I have to agree that we would not want this, not because we do not
> want to have --diff-merges with multiple values, but because it
> introduces an odd-man-out option that is not "last one wins" that is
> not used anywhere else in the UI.

It's still the last one wins, and I believe I've carefully described it
in the documentation of the options.

Thanks,
-- Sergey Organov


  reply	other threads:[~2023-03-02 16:57 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-03  4:02 What's cooking in git.git (Feb 2023, #01; Thu, 2) Junio C Hamano
2023-02-04  9:33 ` Sergey Organov
2023-02-06 18:35   ` Junio C Hamano
2023-02-06 21:35     ` Sergey Organov
2023-03-01 18:40       ` Sergey Organov
2023-03-01 22:15         ` Junio C Hamano
2023-03-01 22:26           ` Sergey Organov
2023-03-01 23:54             ` Glen Choo
2023-03-02 14:38               ` Sergey Organov
2023-02-07  4:06   ` so/diff-merges-more (was Re: What's cooking in git.git (Feb 2023, #01; Thu, 2)) Glen Choo
2023-02-07 12:50     ` Sergey Organov
2023-03-02  0:37       ` Glen Choo
2023-03-02 16:15         ` Junio C Hamano
2023-03-02 16:57           ` Sergey Organov [this message]
2023-03-06 22:22             ` Glen Choo
2023-03-07 10:02               ` Sergey Organov
2023-03-07 17:54                 ` Junio C Hamano
2023-03-08 22:19                   ` Sergey Organov
2023-03-08 23:08                     ` Junio C Hamano
2023-03-09 13:54                       ` Sergey Organov
2023-03-09 17:43                         ` Glen Choo
2023-03-09 19:56                           ` Sergey Organov
2023-03-10 21:19                             ` Glen Choo
2023-03-10 21:47                             ` Junio C Hamano
2023-03-17 14:18                               ` Sergey Organov
2023-03-18  0:08                                 ` Junio C Hamano
2023-03-25 16:55                                   ` Sergey Organov
2023-03-29  7:43                                     ` Sergey Organov
2023-03-29  8:06                                     ` Sergey Organov
2023-02-08 17:22 ` ds/bundle-uri-5 (was: " Victoria Dye

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=87wn3zqefx.fsf@osv.gnss.ru \
    --to=sorganov@gmail.com \
    --cc=chooglen@google.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.