@matheusbsbs / matheus-bagliano / commits / cced5fbc24
Fork 0

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>

Linus Torvalds committed Apr 9, 2009 at 11:46 UTC cced5fbc241f1274ba532040b985f38c15bbf555
1 file changed +10 -7
diff.c
+10 -7
@@ -62,6 +62,15 @@ static int parse_diff_color_slot(const char *var, int ofs)
62 die("bad config variable '%s'", var);
63 }
64
65 +static int git_config_rename(const char *var, const char *value)
66 +{
67 + if (!value)
68 + return DIFF_DETECT_RENAME;
69 + if (!strcasecmp(value, "copies") || !strcasecmp(value, "copy"))
70 + return DIFF_DETECT_COPY;
71 + return git_config_bool(var,value) ? DIFF_DETECT_RENAME : 0;
72 +}
73 +
74 /*
75 * These are to give UI layer defaults.
76 * 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)
84 return 0;
85 }
86 if (!strcmp(var, "diff.renames")) {
78 - if (!value)
79 - diff_detect_rename_default = DIFF_DETECT_RENAME;
80 - else if (!strcasecmp(value, "copies") ||
81 - !strcasecmp(value, "copy"))
82 - diff_detect_rename_default = DIFF_DETECT_COPY;
83 - else if (git_config_bool(var,value))
84 - diff_detect_rename_default = DIFF_DETECT_RENAME;
87 + diff_detect_rename_default = git_config_rename(var, value);
88 return 0;
89 }
90 if (!strcmp(var, "diff.autorefreshindex")) {