]> git.ipfire.org Git - thirdparty/git.git/commit
range-diff: treat notes like `log`
authorKristoffer Haugsbakk <code@khaugsbakk.name>
Tue, 19 Sep 2023 20:26:50 +0000 (22:26 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 19 Sep 2023 21:40:19 +0000 (14:40 -0700)
commit2e0d30d928dbb8899ebae749ceeb257e634d57f7
tree1153fb04d52c6f2bff43411970222f37f6b7da24
parent43c8a30d150ecede9709c1f2527c8fba92c65f40
range-diff: treat notes like `log`

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.

§ Authors

• Fix by Johannes
• Tests by Kristoffer

† 1: See e.g. 66b2ed09c2 (Fix "log" family not to be too agressive about
    showing notes, 2010-01-20).

Co-authored-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/pretty-options.txt
range-diff.c
revision.c
revision.h
t/t3206-range-diff.sh