Stefan Beller <sbel...@google.com> writes:

> diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt
> index 143acd9417e..8da7fed4e22 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[]

The patch to diff.c::git_diff_ui_config() we see below does not seem
to make any effort to make sure that this new configuration applies
only to "git diff" and that other commands like "git log" that call
git_diff_ui_config() are not affected.

And I do not see a strong reason why "git log --color-moved" should
not honor this setting, either, so I am not quite sure why we want
this ifdef/endif pair to hide it from "git log --help".

Or am I totally misunderstanding the reason why we want ifdef/endif
here?

Puzzled...

> diff --git a/diff.c b/diff.c
> index f51f0ac32f4..9de917108d8 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)

Reply via email to