range-diff: offer to dual-color the diffs
When showing what changed between old and new commits, we show a diff of the patches. This diff is a diff between diffs, therefore there are nested +/- signs, and it can be relatively hard to understand what is going on. With the --dual-color option, the preimage and the postimage are colored like the diffs they are, and the *outer* +/- sign is inverted for clarity. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
f7c3b4e2d8
commit
31cf61a080
|
@ -20,9 +20,12 @@ int cmd_range_diff(int argc, const char **argv, const char *prefix)
|
||||||
{
|
{
|
||||||
int creation_factor = 60;
|
int creation_factor = 60;
|
||||||
struct diff_options diffopt = { NULL };
|
struct diff_options diffopt = { NULL };
|
||||||
|
int dual_color = 0;
|
||||||
struct option options[] = {
|
struct option options[] = {
|
||||||
OPT_INTEGER(0, "creation-factor", &creation_factor,
|
OPT_INTEGER(0, "creation-factor", &creation_factor,
|
||||||
N_("Percentage by which creation is weighted")),
|
N_("Percentage by which creation is weighted")),
|
||||||
|
OPT_BOOL(0, "dual-color", &dual_color,
|
||||||
|
N_("color both diff and diff-between-diffs")),
|
||||||
OPT_END()
|
OPT_END()
|
||||||
};
|
};
|
||||||
int i, j, res = 0;
|
int i, j, res = 0;
|
||||||
|
@ -60,6 +63,11 @@ int cmd_range_diff(int argc, const char **argv, const char *prefix)
|
||||||
options + ARRAY_SIZE(options) - 1, /* OPT_END */
|
options + ARRAY_SIZE(options) - 1, /* OPT_END */
|
||||||
builtin_range_diff_usage, 0);
|
builtin_range_diff_usage, 0);
|
||||||
|
|
||||||
|
if (dual_color) {
|
||||||
|
diffopt.use_color = 1;
|
||||||
|
diffopt.flags.dual_color_diffed_diffs = 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (argc == 2) {
|
if (argc == 2) {
|
||||||
if (!strstr(argv[0], ".."))
|
if (!strstr(argv[0], ".."))
|
||||||
die(_("no .. in range: '%s'"), argv[0]);
|
die(_("no .. in range: '%s'"), argv[0]);
|
||||||
|
|
Loading…
Reference in New Issue