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

问题描述 投票:50回答:2

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

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

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

git git-merge git-config
2个回答
33
投票

您的内容是安全的。

根据我的理解,git实际上并没有任何一流的rename操作的概念(只有bzr,大三DVCS):mv是底层机器上的糖,基本上是一个add和一个rm。但是,由于git可以跟踪在此类操作期间发生变化的内容,因此可以使用启发式方法猜测addrm实际上是mv。因为这比仅仅显示git实际记录的内容 - git-diffexplain的文档“它需要O(n ^ 2)处理时间,其中n是潜在的重命名/复制目标的数量”更多的工作“-git不会当涉及太多文件时尝试它。您提到的设置只是控制该阈值。


21
投票

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

$ 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.
© www.soinside.com 2019 - 2024. All rights reserved.