range-diff: introduce the convenience option `--remerge-diff`

Just like `git log`, now also `git range-diff` has that option as a shortcut for the common operation that would otherwise require the quite unwieldy (if theoretically "more correct") `--diff-mode=remerge` option. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Johannes Schindelin committed Dec 16, 2024 at 14:11 UTC 4538338c7edb13a5e818abcfa5739f16ad3dda0c
2 files changed +6
Documentation/git-range-diff.txt
+4
@@ -11,6 +11,7 @@ SYNOPSIS
11 'git range-diff' [--color=[<when>]] [--no-color] [<diff-options>]
12 [--no-dual-color] [--creation-factor=<factor>]
13 [--left-only | --right-only] [--diff-merges=<format>]
14 + [--remerge-diff]
15 ( <range1> <range2> | <rev1>...<rev2> | <base> <rev1> <rev2> )
16 [[--] <path>...]
17
@@ -92,6 +93,9 @@ have produced. In other words, if a merge commit is the result of a
93 non-conflicting `git merge`, the `remerge` mode will represent it with an empty
94 diff.
95
96 +--remerge-diff::
97 + Convenience option, equivalent to `--diff-merges=remerge`.
98 +
99 --[no-]notes[=<ref>]::
100 This flag is passed to the `git log` program
101 (see linkgit:git-log[1]) that generates the patches.
builtin/range-diff.c
+2
@@ -39,6 +39,8 @@ int cmd_range_diff(int argc,
39 PARSE_OPT_OPTARG),
40 OPT_PASSTHRU_ARGV(0, "diff-merges", &diff_merges_arg,
41 N_("style"), N_("passed to 'git log'"), 0),
42 + OPT_PASSTHRU_ARGV(0, "remerge-diff", &diff_merges_arg, NULL,
43 + N_("passed to 'git log'"), PARSE_OPT_NOARG),
44 OPT_BOOL(0, "left-only", &left_only,
45 N_("only emit output related to the first range")),
46 OPT_BOOL(0, "right-only", &right_only,