GIT警告:太多文件跳过不精确的重命名检测

时间:2011-03-03 13:28:28

标签: git git-merge git-config

我知道默认重命名限制为100,并且可以使用配置“diff.renamelimit config”增加此值

令人担心的是,如果没有设置此配置,是否会出现错误的合并,任何丢失的代码? 我试图合并(git merge)2个有巨大变化的分支。

有人可以更多地了解这个配置设置吗?

2 个答案:

答案 0 :(得分:32)

您的内容是安全的。

据我了解,git实际上并没有任何关于第一类rename操作的概念(只有bzr具有大3 DVCS的概念):{{ 1}}是基础机器之上的糖,基本上是mvadd。但是,由于rm可以跟踪在此类操作期间发生更改的内容,因此可以使用启发式方法猜测gitadd实际上是rm的时间。由于这比仅仅显示mv实际记录的内容需要更多的工作 - git的文档解释它“......需要O(n ^ 2)处理时间,其中n是潜在重命名的数量/ copy targets“ - git-diff在涉及太多文件时不会尝试。你提到的设置只是控制了这个阈值。

答案 1 :(得分:19)

如果这有助于任何人,我在一个分支中有很多文件(数百个,如果不是数千个),这些文件还没有在另一个分支中。运行

$ git config merge.renamelimit 15345
合并消失时

发出以下错误

$ 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.