Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

GIT warning: too many files skipping inexact rename detection

I am aware that the default rename limit is 100 and we can increase this value using the config diff.renamelimit config

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

Can someone throw more light about this config setting?

like image 268
Senthil A Kumar Avatar asked Mar 03 '11 13:03

Senthil A Kumar


2 Answers

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.

like image 161
Hank Gay Avatar answered Nov 01 '22 18:11

Hank Gay


In case this helps anyone, I had a lot of files (hundreds, if not thousands) in one branch, which were not yet in the other branch. Running

$ git config merge.renamelimit 15345

made the below error when merging go away

$ git merge master
.
.
.
warning: inexact rename detection was skipped due to too many files.
warning: you may want to set your merge.renamelimit variable to at least 15345 and retry the command.
like image 41
M3RS Avatar answered Nov 01 '22 18:11

M3RS