Control behavior of rename and copy detection
These options mostly mimic parameters that can be passed to git-diff.
rename_threshold
is the same as the -M option with a valuecopy_threshold
is the same as the -C option with a valuerename_from_rewrite_threshold
matches the top of the -B optionbreak_rewrite_threshold
matches the bottom of the -B optionrename_limit
is the maximum number of matches to consider for
a particular file. This is a little different from the -l
option
to regular Git because we will still process up to this many matches
before abandoning the search.The metric
option allows you to plug in a custom similarity metric.
Set it to NULL for the default internal metric which is based on sampling
hashes of ranges of data in the file. The default metric is a pretty
good similarity approximation that should work fairly well for both text
and binary data, and is pretty fast with fixed memory overhead.
Combination of git_diff_find_t values (default GIT_DIFF_FIND_BY_CONFIG). NOTE: if you don't explicitly set this, diff.renames
could be set to false, resulting in git_diff_find_similar
doing nothing.
Similarity to consider a file renamed (default 50)
Similarity of modified to be eligible rename source (default 50)
Similarity to consider a file a copy (default 50)
Similarity to split modify into delete/add pair (default 60)
Maximum similarity sources to examine for a file (somewhat like git-diff's -l
option or diff.renameLimit
config) (default 200)