Skip to content

Commit

Permalink
diff: make "too many files" rename warning optional
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jeff King authored and Junio C Hamano committed May 3, 2008
1 parent 5070591 commit b8960bb
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 1 deletion.
1 change: 1 addition & 0 deletions builtin-merge-recursive.c
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down
1 change: 1 addition & 0 deletions diff.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
3 changes: 2 additions & 1 deletion diffcore-rename.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down

0 comments on commit b8960bb

Please sign in to comment.