From: "Kristoffer Haugsbakk" <code@khaugsbakk.name>
To: "Jeff King" <peff@peff.net>
Cc: git@vger.kernel.org, "Junio C Hamano" <gitster@pobox.com>,
"Denton Liu" <liu.denton@gmail.com>
Subject: Re: [RFC PATCH 1/3] range-diff: treat notes like `log`
Date: Fri, 02 Jun 2023 12:06:16 +0200 [thread overview]
Message-ID: <8f434f16-de65-40c2-80d3-28d123c7be7f@app.fastmail.com> (raw)
In-Reply-To: <20230601182020.GC4165405@coredump.intra.peff.net>
Hi Peff!
On Thu, Jun 1, 2023, at 20:20, Jeff King wrote:
>> This can’t be how the user expects `range-diff` to behave given that the
>> man page for `range diff` under `--[no-]notes[=<ref>]` says:
>>
>> > This flag is passed to the git log program (see git-log(1)) that
>> > generates the patches.
>
> Yeah, I certainly agree that the behavior of range-diff is surprising,
> and that this is a bug.
>
> I'd have expected the solution here would be for range-diff to stop
> passing "--notes", and let "log" decide whether to show notes (based on
> specific --notes=foo it gets from other_arg).
I tried that (removing `--notes`) but it didn’t work out for me. I’d had
hoped that `--notes` was just a holdover from a previous change that
wasn’t needed any more, but it seems according to my testing that `range
diff` needs to pass *some* notes-related argument to `log` in order for
the test suite to pass.
Thinking about it again now it doesn’t really make sense in the isolated
case of `range-diff`. But maybe it’s needed in conjunction with
`format-patch`.
A relevant series is “range-diff: learn `--notes`” by Denton Liu
(f3c7bfdde2 (Merge branch 'dl/range-diff-with-notes', 2019-12-05)).[1]
On the commit before that merge, `range-diff.c` does not pass `--notes`
to `log`. Denton describes the behavior in the first cover letter:
> When I was using range-diff at $DAYJOB earlier, I realised that it
> includes commit notes as part of the commit message comparison.
So just like the default behavior of `log`.
However, the next version (v2) is about teaching `range-diff` to pass
notes down to `log`:
> This patchset teaches range-diff and format-patch to pass `--notes`
> options down to the `git log` machinery. This should make the
> behaviour more configurable for users who either don't want notes to
> be displayed or want multiple notes refs to be displayed.
So apparently `range-diff` couldn’t pass on/down `--notes=<ref>` before
that.
That series also teaches `format-patch` to handle notes in 5b583e6a09
(format-patch: pass notes configuration to range-diff, 2019-11-20).
[1] https://lore.kernel.org/git/cover.1574125554.git.liu.denton@gmail.com/
>
> But...
>
>> This behavior also affects `format-patch` since it uses `range-diff` for
>> the cover letter. Unlike `log`, though, `format-patch` is not supposed
>> to show the default notes if no notes-related arguments are given.[1]
>> But this promise is broken when the range-diff happens to have something
>> to say about the changes to the default notes, since that will be shown
>> in the cover letter.
>>
>> Remedy this by co-opting the `--standard-notes` option which has been
>> deprecated since ab18b2c0df[2] and which is currently only documented in
>> `pretty-options`.
>
> I'm not clear on whether you're actually fixing two separate bugs here,
> or if they need to be intertwined.
I guess it depends on your perspective. ;) I would say that they are so
intertwined that fixing one also fixes the other.
> It seems like passing --standard-notes means that format-patch's
> range-diff will still show the standard notes by default. Maybe I'm
> misunderstanding the problem, though.
No, that should still work. See the test `format-patch --range-diff does
not compare notes by default`.
That kind of thing seems to be handled by `log.c:get_notes_args`;
`--no-notes` is sent to `log` if no notes should be shown.
Cheers
--
Kristoffer Haugsbakk
next prev parent reply other threads:[~2023-06-02 10:07 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-30 10:41 [RFC PATCH 0/3] range-diff: treat notes like `log` Kristoffer Haugsbakk
2023-05-30 10:41 ` [RFC PATCH 1/3] " Kristoffer Haugsbakk
2023-06-01 18:20 ` Jeff King
2023-06-02 10:06 ` Kristoffer Haugsbakk [this message]
2023-05-30 10:41 ` [RFC PATCH 2/3] doc: pretty-options: remove documentation for deprecated options Kristoffer Haugsbakk
2023-05-30 10:41 ` [RFC PATCH 3/3] revision: comment `--no-standard-notes` as deprecated Kristoffer Haugsbakk
2023-06-11 18:15 ` [PATCH v1 0/3] range-diff: treat notes like `log` Kristoffer Haugsbakk
2023-06-11 18:15 ` [PATCH v1 1/3] " Kristoffer Haugsbakk
2023-06-11 18:15 ` [PATCH v1 2/3] doc: pretty-options: remove documentation for deprecated options Kristoffer Haugsbakk
2023-06-11 18:15 ` [PATCH v1 3/3] revision: comment `--no-standard-notes` as deprecated Kristoffer Haugsbakk
2023-06-12 22:21 ` Junio C Hamano
2023-06-13 9:46 ` Kristoffer Haugsbakk
2023-06-12 22:25 ` [PATCH v1 0/3] range-diff: treat notes like `log` Junio C Hamano
2023-06-13 5:43 ` Kristoffer Haugsbakk
2023-09-01 16:18 ` [PATCH v2 " Kristoffer Haugsbakk
2023-09-01 16:19 ` [PATCH v2 1/3] " Kristoffer Haugsbakk
2023-09-03 12:17 ` Johannes Schindelin
2023-09-04 17:10 ` Kristoffer Haugsbakk
2023-09-05 10:56 ` Johannes Schindelin
2023-09-05 22:19 ` Junio C Hamano
2023-09-01 16:19 ` [PATCH v2 2/3] doc: pretty-options: remove documentation for deprecated options Kristoffer Haugsbakk
2023-09-01 16:19 ` [PATCH v2 3/3] revision: comment `--no-standard-notes` as deprecated Kristoffer Haugsbakk
2023-09-10 22:06 ` [PATCH v3 0/1] range-diff: treat notes like `log` Kristoffer Haugsbakk
2023-09-10 22:06 ` [PATCH v3 1/1] " Kristoffer Haugsbakk
2023-09-11 19:55 ` Junio C Hamano
2023-09-14 8:29 ` Johannes Schindelin
2023-09-14 16:18 ` Junio C Hamano
2023-09-14 20:25 ` Kristoffer Haugsbakk
2023-09-19 1:16 ` Junio C Hamano
2023-09-19 9:12 ` Kristoffer Haugsbakk
2023-09-11 13:23 ` [PATCH v3 0/1] " Johannes Schindelin
2023-09-19 18:05 ` [PATCH v4 " Kristoffer Haugsbakk
2023-09-19 18:05 ` [PATCH v4 1/1] " Kristoffer Haugsbakk
2023-09-19 19:27 ` Junio C Hamano
2023-09-19 19:44 ` Kristoffer Haugsbakk
2023-09-19 19:51 ` Junio C Hamano
2023-09-19 19:27 ` Kristoffer Haugsbakk
2023-09-19 19:43 ` Junio C Hamano
2023-09-19 20:26 ` [PATCH v5 0/1] " Kristoffer Haugsbakk
2023-09-19 20:26 ` [PATCH v5 1/1] " Kristoffer Haugsbakk
2023-09-21 12:30 ` Johannes Schindelin
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=8f434f16-de65-40c2-80d3-28d123c7be7f@app.fastmail.com \
--to=code@khaugsbakk.name \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=liu.denton@gmail.com \
--cc=peff@peff.net \
/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 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).