aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2008-04-30 13:25:53 -0400
committerJunio C Hamano <gitster@pobox.com>2008-05-03 13:40:43 -0700
commitb8960bbe7bdfc0b232462f916ee8151c83afd16f (patch)
treef6f72c3264d87e75eb8c07c0c5bb9e44c1780c06
parent50705915eae89eae490dff30fa370ed02e4d6e72 (diff)
downloadgit-b8960bbe7bdfc0b232462f916ee8151c83afd16f.tar.gz
git-b8960bbe7bdfc0b232462f916ee8151c83afd16f.tar.xz
diff: make "too many files" rename warning optional
In many cases, the warning ends up as clutter, because the diff is being done "behind the scenes" from the user (e.g., when generating a commit diffstat), and whether we show renames or not is not particularly interesting to the user. However, in the case of a merge (which is what motivated the warning in the first place), it is a useful hint as to why a merge with renames might have failed. This patch makes the warning optional based on the code calling into diffcore. We default to not showing the warning, but turn it on for merges. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin-merge-recursive.c1
-rw-r--r--diff.h1
-rw-r--r--diffcore-rename.c3
3 files changed, 4 insertions, 1 deletions
diff --git a/builtin-merge-recursive.c b/builtin-merge-recursive.c
index 3902e9106..46e636fdc 100644
--- a/builtin-merge-recursive.c
+++ b/builtin-merge-recursive.c
@@ -365,6 +365,7 @@ static struct path_list *get_renames(struct tree *tree,
opts.rename_limit = merge_rename_limit >= 0 ? merge_rename_limit :
diff_rename_limit >= 0 ? diff_rename_limit :
500;
+ opts.warn_on_too_large_rename = 1;
opts.output_format = DIFF_FORMAT_NO_OUTPUT;
if (diff_setup_done(&opts) < 0)
die("diff setup failed");
diff --git a/diff.h b/diff.h
index f2c77391a..893111606 100644
--- a/diff.h
+++ b/diff.h
@@ -83,6 +83,7 @@ struct diff_options {
int pickaxe_opts;
int rename_score;
int rename_limit;
+ int warn_on_too_large_rename;
int dirstat_percent;
int setup;
int abbrev;
diff --git a/diffcore-rename.c b/diffcore-rename.c
index 1369a5ec4..1b2ebb400 100644
--- a/diffcore-rename.c
+++ b/diffcore-rename.c
@@ -492,7 +492,8 @@ void diffcore_rename(struct diff_options *options)
rename_limit = 32767;
if ((num_create > rename_limit && num_src > rename_limit) ||
(num_create * num_src > rename_limit * rename_limit)) {
- warning("too many files, skipping inexact rename detection");
+ if (options->warn_on_too_large_rename)
+ warning("too many files, skipping inexact rename detection");
goto cleanup;
}