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?
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-diff
explain 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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With