我有一个 SVN 存储库,其中有主干和一个分支。
我打算定期将主干合并到分支中,但是,当我这样做时,除了实际文件内容更改外,我还看到许多属性状态更改。
在进一步调查中,属性更改是 mergeinfo 属性。我没想到会这样,因为我们总是从最高根级别分支和合并。
在合并主干之前,我使用了该svn propdel
命令并从分支 WC 中删除了所有 mergeinfo 属性(然后恢复了根上的更改),问题就消失了。
所以问题是,我的分支是如何在子目录级别获得所有这些mergeinfo 更改的?
我有一个 SVN 存储库,其中有主干和一个分支。
我打算定期将主干合并到分支中,但是,当我这样做时,除了实际文件内容更改外,我还看到许多属性状态更改。
在进一步调查中,属性更改是 mergeinfo 属性。我没想到会这样,因为我们总是从最高根级别分支和合并。
在合并主干之前,我使用了该svn propdel
命令并从分支 WC 中删除了所有 mergeinfo 属性(然后恢复了根上的更改),问题就消失了。
所以问题是,我的分支是如何在子目录级别获得所有这些mergeinfo 更改的?
Subversion 1.5.x 添加了很多 svn:mergeinfo 属性,甚至在您认为与合并无关的文件/文件夹上。但是 Subversion 仍然使用这些来减少后续合并的合并时间。
如果您不喜欢这些,您可以安全地从所有不属于合并的文件/文件夹中删除那些修改/添加的 svn:mergeinfo 属性(将其保留在工作副本根目录和从合并)。
如果在 1.6 版本中一切都按计划进行,Subversion 1.6 将大大减少这些 svn:mergeinfo 属性。
Subversion 1.5.5 中至少修复了这个错误的一部分。从1.5.5 更改文件:
不要为 wc-wc 移动或副本创建合并信息 (r34184, -585)
也就是说,在 1.5 之前的 SVN 中有一个错误,它会创建它不使用并且是多余的 mergeinfo 条目。