diff options
author | Jeff King <peff@peff.net> | 2008-04-30 13:23:55 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-05-03 13:39:51 -0700 |
commit | 2a2ac926547bc4fa91fcd1cb741dd5691ba9b974 (patch) | |
tree | 823a7d5100be5218581c7eabec25ef2bd605f0e8 /builtin-merge-recursive.c | |
parent | ec845695c4e6d7b689c3eb0b53d1b2ba4803c7ea (diff) | |
download | git-2a2ac926547bc4fa91fcd1cb741dd5691ba9b974.tar.gz |
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>
Diffstat (limited to 'builtin-merge-recursive.c')
-rw-r--r-- | builtin-merge-recursive.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/builtin-merge-recursive.c b/builtin-merge-recursive.c index 910c0d20e7..1293e3d342 100644 --- a/builtin-merge-recursive.c +++ b/builtin-merge-recursive.c @@ -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); |