Skip to content

Commit

Permalink
diff.c: respect diff.renames config option
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Eric Wong authored and Junio C Hamano committed Jul 7, 2006
1 parent d507bb1 commit b68ea12
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
5 changes: 5 additions & 0 deletions Documentation/config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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].
Expand Down
14 changes: 14 additions & 0 deletions diff.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit b68ea12

Please sign in to comment.