summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Beller <sbeller@google.com>2018-07-18 19:31:56 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-07-19 19:02:54 (GMT)
commit626c0b5d395196ddabcf9b9a430db385722689d4 (patch)
treeb1412186de6f09e4a20a76ec9b0d3cfa89c65619
parentca1f4ae4dfade677647928d28728a0cad125981d (diff)
downloadgit-626c0b5d395196ddabcf9b9a430db385722689d4.zip
git-626c0b5d395196ddabcf9b9a430db385722689d4.tar.gz
git-626c0b5d395196ddabcf9b9a430db385722689d4.tar.bz2
diff.c: offer config option to control ws handling in move detection
Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--Documentation/config.txt5
-rw-r--r--Documentation/diff-options.txt7
-rw-r--r--diff.c9
3 files changed, 19 insertions, 2 deletions
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 2659153..6ca7118 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -1122,6 +1122,11 @@ diff.colorMoved::
true the default color mode will be used. When set to false,
moved lines are not colored.
+diff.colorMovedWS::
+ When moved lines are colored using e.g. the `diff.colorMoved` setting,
+ this option controls the `<mode>` how spaces are treated
+ for details of valid modes see '--color-moved-ws' in linkgit:git-diff[1].
+
color.diff.<slot>::
Use customized color for diff colorization. `<slot>` specifies
which part of the patch to use the specified color, and is one
diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt
index 143acd9..8da7fed 100644
--- a/Documentation/diff-options.txt
+++ b/Documentation/diff-options.txt
@@ -294,8 +294,11 @@ dimmed_zebra::
--color-moved-ws=<modes>::
This configures how white spaces are ignored when performing the
- move detection for `--color-moved`. These modes can be given
- as a comma separated list:
+ move detection for `--color-moved`.
+ifdef::git-diff[]
+ It can be set by the `diff.colorMovedWS` configuration setting.
+endif::git-diff[]
+ These modes can be given as a comma separated list:
+
--
ignore-space-at-eol::
diff --git a/diff.c b/diff.c
index 7810a47..5089c6e 100644
--- a/diff.c
+++ b/diff.c
@@ -35,6 +35,7 @@ static int diff_rename_limit_default = 400;
static int diff_suppress_blank_empty;
static int diff_use_color_default = -1;
static int diff_color_moved_default;
+static int diff_color_moved_ws_default;
static int diff_context_default = 3;
static int diff_interhunk_context_default;
static const char *diff_word_regex_cfg;
@@ -332,6 +333,13 @@ int git_diff_ui_config(const char *var, const char *value, void *cb)
diff_color_moved_default = cm;
return 0;
}
+ if (!strcmp(var, "diff.colormovedws")) {
+ int cm = parse_color_moved_ws(value);
+ if (cm < 0)
+ return -1;
+ diff_color_moved_ws_default = cm;
+ return 0;
+ }
if (!strcmp(var, "diff.context")) {
diff_context_default = git_config_int(var, value);
if (diff_context_default < 0)
@@ -4327,6 +4335,7 @@ void diff_setup(struct diff_options *options)
}
options->color_moved = diff_color_moved_default;
+ options->color_moved_ws_handling = diff_color_moved_ws_default;
}
void diff_setup_done(struct diff_options *options)