Allow users to un-configure rename detection
I told people on the kernel mailing list to please use "-M" when sending me rename patches, so that I can see what they do while reading email rather than having to apply the patch and then look at the end result. I also told them that if they want to make it the default, they can just add [diff] renames to their ~/.gitconfig file. And while I was thinking about that, I wanted to also check whether you can then mark individual projects to _not_ have that default in the per-repository .git/config file. And you can't. Currently you cannot have a global "enable renames by default" and then a local ".. but not for _this_ project". Why? Because if somebody writes [diff] renames = no we simply ignore it, rather than resetting "diff_detect_rename_default" back to zero. Fixed thusly. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
519d05be90
commit
cced5fbc24
17
diff.c
17
diff.c
@ -62,6 +62,15 @@ static int parse_diff_color_slot(const char *var, int ofs)
|
||||
die("bad config variable '%s'", var);
|
||||
}
|
||||
|
||||
static int git_config_rename(const char *var, const char *value)
|
||||
{
|
||||
if (!value)
|
||||
return DIFF_DETECT_RENAME;
|
||||
if (!strcasecmp(value, "copies") || !strcasecmp(value, "copy"))
|
||||
return DIFF_DETECT_COPY;
|
||||
return git_config_bool(var,value) ? DIFF_DETECT_RENAME : 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* These are to give UI layer defaults.
|
||||
* The core-level commands such as git-diff-files should
|
||||
@ -75,13 +84,7 @@ int git_diff_ui_config(const char *var, const char *value, void *cb)
|
||||
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;
|
||||
diff_detect_rename_default = git_config_rename(var, value);
|
||||
return 0;
|
||||
}
|
||||
if (!strcmp(var, "diff.autorefreshindex")) {
|
||||
|
Loading…
Reference in New Issue
Block a user