aboutsummaryrefslogtreecommitdiff
path: root/diff.c
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2006-07-07 04:01:23 -0700
committerJunio C Hamano <junkio@cox.net>2006-07-07 12:28:53 -0700
commitb68ea12e305043a7feef085b6ba098f42357af9b (patch)
tree569d1cb41b151c46eaddbf74ea61638fa3a5fc79 /diff.c
parentd507bb15008d6ee657eebaf2803bf0964af12c93 (diff)
downloadgit-b68ea12e305043a7feef085b6ba098f42357af9b.tar.gz
git-b68ea12e305043a7feef085b6ba098f42357af9b.tar.xz
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>
Diffstat (limited to 'diff.c')
-rw-r--r--diff.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/diff.c b/diff.c
index b423491f6..4bea3066a 100644
--- a/diff.c
+++ b/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;