mirror of
https://github.com/git/git.git
synced 2024-05-04 00:46:12 +02:00
Merge branch 'en/rename-limits-doc'
Documentation on "git diff -l<n>" and diff.renameLimit have been updated, and the defaults for these limits have been raised. * en/rename-limits-doc: rename: bump limit defaults yet again diffcore-rename: treat a rename_limit of 0 as unlimited doc: clarify documentation for rename/copy limits diff: correct warning message when renameLimit exceeded
This commit is contained in:
commit
268055bfde
|
@ -118,9 +118,10 @@ diff.orderFile::
|
||||||
relative to the top of the working tree.
|
relative to the top of the working tree.
|
||||||
|
|
||||||
diff.renameLimit::
|
diff.renameLimit::
|
||||||
The number of files to consider when performing the copy/rename
|
The number of files to consider in the exhaustive portion of
|
||||||
detection; equivalent to the 'git diff' option `-l`. This setting
|
copy/rename detection; equivalent to the 'git diff' option
|
||||||
has no effect if rename detection is turned off.
|
`-l`. If not set, the default value is currently 1000. This
|
||||||
|
setting has no effect if rename detection is turned off.
|
||||||
|
|
||||||
diff.renames::
|
diff.renames::
|
||||||
Whether and how Git detects renames. If set to "false",
|
Whether and how Git detects renames. If set to "false",
|
||||||
|
|
|
@ -33,10 +33,12 @@ merge.verifySignatures::
|
||||||
include::fmt-merge-msg.txt[]
|
include::fmt-merge-msg.txt[]
|
||||||
|
|
||||||
merge.renameLimit::
|
merge.renameLimit::
|
||||||
The number of files to consider when performing rename detection
|
The number of files to consider in the exhaustive portion of
|
||||||
during a merge; if not specified, defaults to the value of
|
rename detection during a merge. If not specified, defaults
|
||||||
diff.renameLimit. This setting has no effect if rename detection
|
to the value of diff.renameLimit. If neither
|
||||||
is turned off.
|
merge.renameLimit nor diff.renameLimit are specified,
|
||||||
|
currently defaults to 7000. This setting has no effect if
|
||||||
|
rename detection is turned off.
|
||||||
|
|
||||||
merge.renames::
|
merge.renames::
|
||||||
Whether Git detects renames. If set to "false", rename detection
|
Whether Git detects renames. If set to "false", rename detection
|
||||||
|
|
|
@ -588,11 +588,17 @@ When used together with `-B`, omit also the preimage in the deletion part
|
||||||
of a delete/create pair.
|
of a delete/create pair.
|
||||||
|
|
||||||
-l<num>::
|
-l<num>::
|
||||||
The `-M` and `-C` options require O(n^2) processing time where n
|
The `-M` and `-C` options involve some preliminary steps that
|
||||||
is the number of potential rename/copy targets. This
|
can detect subsets of renames/copies cheaply, followed by an
|
||||||
option prevents rename/copy detection from running if
|
exhaustive fallback portion that compares all remaining
|
||||||
the number of rename/copy targets exceeds the specified
|
unpaired destinations to all relevant sources. (For renames,
|
||||||
number.
|
only remaining unpaired sources are relevant; for copies, all
|
||||||
|
original sources are relevant.) For N sources and
|
||||||
|
destinations, this exhaustive check is O(N^2). This option
|
||||||
|
prevents the exhaustive portion of rename/copy detection from
|
||||||
|
running if the number of source/destination files involved
|
||||||
|
exceeds the specified number. Defaults to diff.renameLimit.
|
||||||
|
Note that a value of 0 is treated as unlimited.
|
||||||
|
|
||||||
ifndef::git-format-patch[]
|
ifndef::git-format-patch[]
|
||||||
--diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]::
|
--diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]::
|
||||||
|
|
4
diff.c
4
diff.c
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
static int diff_detect_rename_default;
|
static int diff_detect_rename_default;
|
||||||
static int diff_indent_heuristic = 1;
|
static int diff_indent_heuristic = 1;
|
||||||
static int diff_rename_limit_default = 400;
|
static int diff_rename_limit_default = 1000;
|
||||||
static int diff_suppress_blank_empty;
|
static int diff_suppress_blank_empty;
|
||||||
static int diff_use_color_default = -1;
|
static int diff_use_color_default = -1;
|
||||||
static int diff_color_moved_default;
|
static int diff_color_moved_default;
|
||||||
|
@ -6295,7 +6295,7 @@ static int is_summary_empty(const struct diff_queue_struct *q)
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char rename_limit_warning[] =
|
static const char rename_limit_warning[] =
|
||||||
N_("inexact rename detection was skipped due to too many files.");
|
N_("exhaustive rename detection was skipped due to too many files.");
|
||||||
|
|
||||||
static const char degrade_cc_to_c_warning[] =
|
static const char degrade_cc_to_c_warning[] =
|
||||||
N_("only found copies from modified paths due to too many files.");
|
N_("only found copies from modified paths due to too many files.");
|
||||||
|
|
|
@ -1091,7 +1091,7 @@ static int too_many_rename_candidates(int num_destinations, int num_sources,
|
||||||
* memory for the matrix anyway.
|
* memory for the matrix anyway.
|
||||||
*/
|
*/
|
||||||
if (rename_limit <= 0)
|
if (rename_limit <= 0)
|
||||||
rename_limit = 32767;
|
return 0; /* treat as unlimited */
|
||||||
if (st_mult(num_destinations, num_sources)
|
if (st_mult(num_destinations, num_sources)
|
||||||
<= st_mult(rename_limit, rename_limit))
|
<= st_mult(rename_limit, rename_limit))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -2563,7 +2563,7 @@ static void detect_regular_renames(struct merge_options *opt,
|
||||||
diff_opts.detect_rename = DIFF_DETECT_RENAME;
|
diff_opts.detect_rename = DIFF_DETECT_RENAME;
|
||||||
diff_opts.rename_limit = opt->rename_limit;
|
diff_opts.rename_limit = opt->rename_limit;
|
||||||
if (opt->rename_limit <= 0)
|
if (opt->rename_limit <= 0)
|
||||||
diff_opts.rename_limit = 1000;
|
diff_opts.rename_limit = 7000;
|
||||||
diff_opts.rename_score = opt->rename_score;
|
diff_opts.rename_score = opt->rename_score;
|
||||||
diff_opts.show_rename_progress = opt->show_rename_progress;
|
diff_opts.show_rename_progress = opt->show_rename_progress;
|
||||||
diff_opts.output_format = DIFF_FORMAT_NO_OUTPUT;
|
diff_opts.output_format = DIFF_FORMAT_NO_OUTPUT;
|
||||||
|
|
|
@ -1880,7 +1880,7 @@ static struct diff_queue_struct *get_diffpairs(struct merge_options *opt,
|
||||||
*/
|
*/
|
||||||
if (opts.detect_rename > DIFF_DETECT_RENAME)
|
if (opts.detect_rename > DIFF_DETECT_RENAME)
|
||||||
opts.detect_rename = DIFF_DETECT_RENAME;
|
opts.detect_rename = DIFF_DETECT_RENAME;
|
||||||
opts.rename_limit = (opt->rename_limit >= 0) ? opt->rename_limit : 1000;
|
opts.rename_limit = (opt->rename_limit >= 0) ? opt->rename_limit : 7000;
|
||||||
opts.rename_score = opt->rename_score;
|
opts.rename_score = opt->rename_score;
|
||||||
opts.show_rename_progress = opt->show_rename_progress;
|
opts.show_rename_progress = opt->show_rename_progress;
|
||||||
opts.output_format = DIFF_FORMAT_NO_OUTPUT;
|
opts.output_format = DIFF_FORMAT_NO_OUTPUT;
|
||||||
|
|
Loading…
Reference in New Issue