GIT warning: too many files skipping inexact rename detection

Senthil A Kumar picture Senthil A Kumar · Mar 3, 2011 · Viewed 44.7k times · Source

Am aware that the the default rename limit is 100 and can increase this value using the config "diff.renamelimit config"

What am worried is, if this config is not setup, will there be a wrong merge, any missing code? Am trying to merge (git merge) 2 branches that has huge changes.

Can someone throw more light about this config setting?

Answer

Hank Gay picture Hank Gay · Mar 3, 2011

Your content is safe.

As I understand it, git doesn't actually have any concept of a first-class rename operation (only bzr does, of the big 3 DVCSs): the mv is sugar on top of the underlying machinery, which is basically an add and a rm. Since git can track the content that changes during such operations, though, it can use heuristics to guess when an add and a rm are actually a mv. Since that takes way more work than just displaying what git actually recorded—the docs for git-diffexplain that it "...require O(n^2) processing time where n is the number of potential rename/copy targets"—git won't try it when too many files are involved. The setting you mention just controls that threshold.