diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-05-31 21:00:02 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-05-31 21:00:02 +0200 |
commit | b3c89315a33fbded4a8c5d533ca8ddc6087e4c23 (patch) | |
tree | 804bd0c440bcbd6c365460e5d60163b44cd8c200 /diff.c | |
parent | Merge branch 'rr/doc-content-type' into maint (diff) | |
parent | diffcore-rename: fall back to -C when -C -C busts the rename limit (diff) | |
download | git-b3c89315a33fbded4a8c5d533ca8ddc6087e4c23.tar.xz git-b3c89315a33fbded4a8c5d533ca8ddc6087e4c23.zip |
Merge branch 'jc/rename-degrade-cc-to-c' into maint
* jc/rename-degrade-cc-to-c:
diffcore-rename: fall back to -C when -C -C busts the rename limit
diffcore-rename: record filepair for rename src
diffcore-rename: refactor "too many candidates" logic
builtin/diff.c: remove duplicated call to diff_result_code()
Diffstat (limited to 'diff.c')
-rw-r--r-- | diff.c | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -3995,6 +3995,28 @@ static int is_summary_empty(const struct diff_queue_struct *q) return 1; } +static const char rename_limit_warning[] = +"inexact rename detection was skipped due to too many files."; + +static const char degrade_cc_to_c_warning[] = +"only found copies from modified paths due to too many files."; + +static const char rename_limit_advice[] = +"you may want to set your %s variable to at least " +"%d and retry the command."; + +void diff_warn_rename_limit(const char *varname, int needed, int degraded_cc) +{ + if (degraded_cc) + warning(degrade_cc_to_c_warning); + else if (needed) + warning(rename_limit_warning); + else + return; + if (0 < needed && needed < 32767) + warning(rename_limit_advice, varname, needed); +} + void diff_flush(struct diff_options *options) { struct diff_queue_struct *q = &diff_queued_diff; @@ -4276,6 +4298,10 @@ void diffcore_std(struct diff_options *options) int diff_result_code(struct diff_options *opt, int status) { int result = 0; + + diff_warn_rename_limit("diff.renamelimit", + opt->needed_rename_limit, + opt->degraded_cc_to_c); if (!DIFF_OPT_TST(opt, EXIT_WITH_STATUS) && !(opt->output_format & DIFF_FORMAT_CHECKDIFF)) return status; |