git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v4 1/1] range-diff: treat notes like `log`

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 19, 2023, 19:27 UTC
Message-ID
<xmqqled2ezfh.fsf@gitster.g>
In-Reply-To
<244e102cc4693bb6291e03cffea6df05cdb29df3.1695144790.git.code@khaugsbakk.name>
Kristoffer Haugsbakk <code@khaugsbakk.name> writes:
Show 34 quoted lines
> Currently, `range-diff` shows the default notes if no notes-related
> arguments are given. This is also how `log` behaves. But unlike
> `range-diff`, `log` does *not* show the default notes if
> `--notes=<custom>` are given. In other words, this:
>
>     git log --notes=custom
>
> is equivalent to this:
>
>     git log --no-notes --notes=custom
>
> While:
>
>     git range-diff --notes=custom
>
> acts like this:
>
>     git log --notes --notes-custom
>
> 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.
>
> 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 introducing `--show-notes-by-default` that `range-diff` can
> use to tell the `log` subprocess what to do.

Very well described. I think the rest of the proposed log message is redundant now we have quite a good write-up above.

Show 8 quoted lines
>  ifndef::git-rev-list[]
> +--show-notes-by-default::
> +	Show the default notes (see `--notes`) unless subsequent arguments
> +	are used to display specific notes.
> +
>  --notes[=<ref>]::
>  	Show the notes (see linkgit:git-notes[1]) that annotate the
>  	commit, when showing the commit log message.  This is the default

I think the new entry should come after the description of `--notes`, which is the primary option around the "notes" feature.

In the description, I think "subsequent" is misphrased. It makes it sound as if

    $ git log --show-notes-by-default --notes=amlog

would stop showing the notes from the default notes tree (because the notes from the .git/refs/notes/amlog is explicitly asked for), while

    $ git log --notes=amlog --show-notes-by-default

would show both the default and the custom notes, which is not what the code does, I think, in this hunk:

Show 11 quoted lines
> @@ -3054,6 +3056,11 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
>  	if (revs->expand_tabs_in_log < 0)
>  		revs->expand_tabs_in_log = revs->expand_tabs_in_log_default;
>  
> +	if (!revs->show_notes_given && revs->show_notes_by_default) {
> +		enable_default_display_notes(&revs->notes_opt, &revs->show_notes);
> +		revs->show_notes_given = 1;
> +	}
> +
>  	return left;
>  }
Other than the above minor nits, looks very good.
Thanks.
Previous: Kristoffer HaugsbakkNext: Kristoffer Haugsbakk
Message 34 of 41 in “range-diff: treat notes like `log`”
  1. 0/3 range-diff: treat notes like `log`Kristoffer Haugsbakk, May 30, 2023
  2. 1/3 range-diff: treat notes like `log`Kristoffer Haugsbakk, May 30, 2023
  3. Jeff KingJun 1, 2023
  4. Kristoffer HaugsbakkJun 2, 2023
  5. 2/3 doc: pretty-options: remove documentation for deprecated optionsKristoffer Haugsbakk, May 30, 2023
  6. 3/3 revision: comment `--no-standard-notes` as deprecatedKristoffer Haugsbakk, May 30, 2023
  7. 0/3 range-diff: treat notes like `log`Kristoffer Haugsbakk, Jun 11, 2023
  8. 2/3 doc: pretty-options: remove documentation for deprecated optionsKristoffer Haugsbakk, Jun 11, 2023
  9. 3/3 revision: comment `--no-standard-notes` as deprecatedKristoffer Haugsbakk, Jun 11, 2023
  10. Junio C HamanoJun 12, 2023
  11. Kristoffer HaugsbakkJun 13, 2023
  12. 1/3 range-diff: treat notes like `log`Kristoffer Haugsbakk, Jun 11, 2023
  13. Junio C HamanoJun 12, 2023
  14. Kristoffer HaugsbakkJun 13, 2023
  15. 0/3 range-diff: treat notes like `log`Kristoffer Haugsbakk, Sep 1, 2023
  16. 1/3 range-diff: treat notes like `log`Kristoffer Haugsbakk, Sep 1, 2023
  17. Johannes SchindelinSep 3, 2023
  18. Kristoffer HaugsbakkSep 4, 2023
  19. Johannes SchindelinSep 5, 2023
  20. Junio C HamanoSep 5, 2023
  21. 2/3 doc: pretty-options: remove documentation for deprecated optionsKristoffer Haugsbakk, Sep 1, 2023
  22. 3/3 revision: comment `--no-standard-notes` as deprecatedKristoffer Haugsbakk, Sep 1, 2023
  23. 0/1 range-diff: treat notes like `log`Kristoffer Haugsbakk, Sep 10, 2023
  24. 1/1 range-diff: treat notes like `log`Kristoffer Haugsbakk, Sep 10, 2023
  25. Junio C HamanoSep 11, 2023
  26. Johannes SchindelinSep 14, 2023
  27. Junio C HamanoSep 14, 2023
  28. Kristoffer HaugsbakkSep 14, 2023
  29. Junio C HamanoSep 19, 2023
  30. Kristoffer HaugsbakkSep 19, 2023
  31. Johannes SchindelinSep 11, 2023
  32. 0/1 range-diff: treat notes like `log`Kristoffer Haugsbakk, Sep 19, 2023
  33. 1/1 range-diff: treat notes like `log`Kristoffer Haugsbakk, Sep 19, 2023
  34. Junio C HamanoSep 19, 2023
  35. Kristoffer HaugsbakkSep 19, 2023
  36. Junio C HamanoSep 19, 2023
  37. Kristoffer HaugsbakkSep 19, 2023
  38. Junio C HamanoSep 19, 2023
  39. 0/1 range-diff: treat notes like `log`Kristoffer Haugsbakk, Sep 19, 2023
  40. 1/1 range-diff: treat notes like `log`Kristoffer Haugsbakk, Sep 19, 2023
  41. Johannes SchindelinSep 21, 2023

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.