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>
This commit is contained in:
committed by
Junio C Hamano
parent
43c8a30d15
commit
2e0d30d928
@ -2484,6 +2484,8 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
|
||||
revs->break_bar = xstrdup(optarg);
|
||||
revs->track_linear = 1;
|
||||
revs->track_first_time = 1;
|
||||
} else if (!strcmp(arg, "--show-notes-by-default")) {
|
||||
revs->show_notes_by_default = 1;
|
||||
} else if (skip_prefix(arg, "--show-notes=", &optarg) ||
|
||||
skip_prefix(arg, "--notes=", &optarg)) {
|
||||
if (starts_with(arg, "--show-notes=") &&
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user