diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-04-15 13:25:50 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-04-15 13:27:04 -0700 |
commit | ed44fd045a8a4bcf7f30a47e4fc6aba761faaf78 (patch) | |
tree | ccc8afe7eb85ec89347047f8e3fb5ff7f4c2f6a6 /diffcore-rename.c | |
parent | e0d48279d5a96bc02edac72c1d28fc38aed37c15 (diff) | |
parent | 4d8b32a2e1758236c4c1b714f179892e3bce982c (diff) | |
download | git-ed44fd045a8a4bcf7f30a47e4fc6aba761faaf78.tar.gz git-ed44fd045a8a4bcf7f30a47e4fc6aba761faaf78.tar.xz |
Merge v1.7.5-rc2 into jn/format-patch-doc
This is to sync with the recent updates in Documentation/SubmittingPatches
and Documentation/format-patch.txt
Diffstat (limited to 'diffcore-rename.c')
-rw-r--r-- | diffcore-rename.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/diffcore-rename.c b/diffcore-rename.c index 0cd4c1305..d40e40a3a 100644 --- a/diffcore-rename.c +++ b/diffcore-rename.c @@ -5,6 +5,7 @@ #include "diff.h" #include "diffcore.h" #include "hash.h" +#include "progress.h" /* Table of rename/copy destinations */ @@ -449,6 +450,7 @@ void diffcore_rename(struct diff_options *options) struct diff_score *mx; int i, j, rename_count; int num_create, num_src, dst_cnt; + struct progress *progress = NULL; if (!minimum_score) minimum_score = DEFAULT_RENAME_SCORE; @@ -518,15 +520,22 @@ void diffcore_rename(struct diff_options *options) * but handles the potential overflow case specially (and we * assume at least 32-bit integers) */ + options->needed_rename_limit = 0; if (rename_limit <= 0 || rename_limit > 32767) rename_limit = 32767; if ((num_create > rename_limit && num_src > rename_limit) || (num_create * num_src > rename_limit * rename_limit)) { - if (options->warn_on_too_large_rename) - warning("too many files (created: %d deleted: %d), skipping inexact rename detection", num_create, num_src); + options->needed_rename_limit = + num_src > num_create ? num_src : num_create; goto cleanup; } + if (options->show_rename_progress) { + progress = start_progress_delay( + "Performing inexact rename detection", + rename_dst_nr * rename_src_nr, 50, 1); + } + mx = xcalloc(num_create * NUM_CANDIDATE_PER_DST, sizeof(*mx)); for (dst_cnt = i = 0; i < rename_dst_nr; i++) { struct diff_filespec *two = rename_dst[i].two; @@ -556,7 +565,9 @@ void diffcore_rename(struct diff_options *options) diff_free_filespec_blob(two); } dst_cnt++; + display_progress(progress, (i+1)*rename_src_nr); } + stop_progress(&progress); /* cost matrix sorted by most to least similar pair */ qsort(mx, dst_cnt * NUM_CANDIDATE_PER_DST, sizeof(*mx), score_compare); |