mirror of
https://github.com/git/git.git
synced 2024-12-18 06:14:59 +08:00
diff.c: respect diff.renames config option
diff.renames is mentioned several times in the documentation, but to my surprise it didn't do anything before this patch. Also add the --no-renames option to override this from the command-line. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
d507bb1500
commit
b68ea12e30
@ -114,6 +114,11 @@ diff.renameLimit::
|
||||
The number of files to consider when performing the copy/rename
|
||||
detection; equivalent to the git diff option '-l'.
|
||||
|
||||
diff.renames::
|
||||
Tells git to detect renames. If set to any boolean value, it
|
||||
will enable basic rename detection. If set to "copies" or
|
||||
"copy", it will detect copies, as well.
|
||||
|
||||
format.headers::
|
||||
Additional email headers to include in a patch to be submitted
|
||||
by mail. See gitlink:git-format-patch[1].
|
||||
|
14
diff.c
14
diff.c
@ -13,6 +13,7 @@
|
||||
|
||||
static int use_size_cache;
|
||||
|
||||
static int diff_detect_rename_default = 0;
|
||||
static int diff_rename_limit_default = -1;
|
||||
static int diff_use_color_default = 0;
|
||||
|
||||
@ -120,6 +121,16 @@ int git_diff_config(const char *var, const char *value)
|
||||
diff_use_color_default = git_config_bool(var, value);
|
||||
return 0;
|
||||
}
|
||||
if (!strcmp(var, "diff.renames")) {
|
||||
if (!value)
|
||||
diff_detect_rename_default = DIFF_DETECT_RENAME;
|
||||
else if (!strcasecmp(value, "copies") ||
|
||||
!strcasecmp(value, "copy"))
|
||||
diff_detect_rename_default = DIFF_DETECT_COPY;
|
||||
else if (git_config_bool(var,value))
|
||||
diff_detect_rename_default = DIFF_DETECT_RENAME;
|
||||
return 0;
|
||||
}
|
||||
if (!strncmp(var, "diff.color.", 11)) {
|
||||
int slot = parse_diff_color_slot(var, 11);
|
||||
diff_colors[slot] = parse_diff_color_value(value, var);
|
||||
@ -1431,6 +1442,7 @@ void diff_setup(struct diff_options *options)
|
||||
options->change = diff_change;
|
||||
options->add_remove = diff_addremove;
|
||||
options->color_diff = diff_use_color_default;
|
||||
options->detect_rename = diff_detect_rename_default;
|
||||
}
|
||||
|
||||
int diff_setup_done(struct diff_options *options)
|
||||
@ -1617,6 +1629,8 @@ int diff_opt_parse(struct diff_options *options, const char **av, int ac)
|
||||
options->xdl_opts |= XDF_IGNORE_WHITESPACE;
|
||||
else if (!strcmp(arg, "-b") || !strcmp(arg, "--ignore-space-change"))
|
||||
options->xdl_opts |= XDF_IGNORE_WHITESPACE_CHANGE;
|
||||
else if (!strcmp(arg, "--no-renames"))
|
||||
options->detect_rename = 0;
|
||||
else
|
||||
return 0;
|
||||
return 1;
|
||||
|
Loading…
Reference in New Issue
Block a user