add merge.renamelimit config option
The point of rename limiting is to bound the amount of time we spend figuring out inexact renames. Currently we use a single value, diff.renamelimit, for all situations. However, it is probably the case that a user is willing to spend more time finding renames during a merge than they are while looking at git-log. This patch provides a way of setting those values separately (though for backwards compatibility, merge still falls back on the diff renamelimit). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
ec845695c4
commit
2a2ac92654
@ -92,7 +92,8 @@ static struct path_list current_directory_set = {NULL, 0, 0, 1};
|
||||
|
||||
static int call_depth = 0;
|
||||
static int verbosity = 2;
|
||||
static int rename_limit = -1;
|
||||
static int diff_rename_limit = -1;
|
||||
static int merge_rename_limit = -1;
|
||||
static int buffer_output = 1;
|
||||
static struct strbuf obuf = STRBUF_INIT;
|
||||
|
||||
@ -361,7 +362,9 @@ static struct path_list *get_renames(struct tree *tree,
|
||||
diff_setup(&opts);
|
||||
DIFF_OPT_SET(&opts, RECURSIVE);
|
||||
opts.detect_rename = DIFF_DETECT_RENAME;
|
||||
opts.rename_limit = rename_limit;
|
||||
opts.rename_limit = merge_rename_limit >= 0 ? merge_rename_limit :
|
||||
diff_rename_limit >= 0 ? diff_rename_limit :
|
||||
100;
|
||||
opts.output_format = DIFF_FORMAT_NO_OUTPUT;
|
||||
if (diff_setup_done(&opts) < 0)
|
||||
die("diff setup failed");
|
||||
@ -1343,7 +1346,11 @@ static int merge_config(const char *var, const char *value)
|
||||
return 0;
|
||||
}
|
||||
if (!strcasecmp(var, "diff.renamelimit")) {
|
||||
rename_limit = git_config_int(var, value);
|
||||
diff_rename_limit = git_config_int(var, value);
|
||||
return 0;
|
||||
}
|
||||
if (!strcasecmp(var, "merge.renamelimit")) {
|
||||
merge_rename_limit = git_config_int(var, value);
|
||||
return 0;
|
||||
}
|
||||
return git_default_config(var, value);
|
||||
|
Reference in New Issue
Block a user