工作副本根以外的路径上的 SVN Mergeinfo 属性

Posted

技术标签:

【中文标题】工作副本根以外的路径上的 SVN Mergeinfo 属性【英文标题】:SVN Mergeinfo properties on paths other than the working copy root 【发布时间】:2010-09-28 08:35:14 【问题描述】:

我有一个 SVN 存储库,其中有主干和分支。

我打算定期将主干合并到分支中,但是,当我这样做时,除了实际文件内容更改外,我还看到许多属性状态更改。

在进一步调查中,属性更改是 mergeinfo 属性。我没想到会这样,因为我们总是从***根级别分支和合并。

在合并主干之前,我使用了svn propdel 命令并从分支WC 中删除了所有mergeinfo 属性(然后恢复了根上的更改),问题就消失了。

所以问题是,我的分支是如何在子目录级别获得所有这些mergeinfo 更改的?

【问题讨论】:

+1:我见过这种事情,我们甚至没有在服务器上使用 svn 1.5(使用自制的合并跟踪工具)。我很想听听一些解释,因为它在更改日志中看起来很可怕(我没有碰那个文件!!哦,这只是一些属性更改......) 【参考方案1】:

Subversion 1.5.x 添加了很多 svn:mergeinfo 属性,甚至在您认为与合并无关的文件/文件夹上也是如此。但是 Subversion 仍然使用这些来减少后续合并的合并时间。

如果您不喜欢这些,您可以安全地从所有不属于合并的文件/文件夹中删除那些修改/添加的 svn:mergeinfo 属性(将其保留在工作副本根目录和获得的文件/文件夹中合并后的变化)。

如果在 1.6 版本中一切都按计划进行,Subversion 1.6 将大大减少这些 svn:mergeinfo 属性。

【讨论】:

+1。很好的解释。可能您知道是否可以禁用对那些未修改的文件的属性的修改?设置一些选项可能会很好,不要再担心这个了。谢谢。 知道这是服务器端还是客户端功能? 我正在使用 svn 1.6.6 仍然看到这个问题。【参考方案2】:

Subversion 1.5.5 中至少修复了这个错误的一部分。来自1.5.5 CHANGES file:

不要为 wc-wc 移动或复制创建合并信息 (r34184, -585)

也就是说,在 1.5 之前的 SVN 中存在一个错误,它会创建它不使用并且是多余的合并信息条目。

【讨论】:

以上是关于工作副本根以外的路径上的 SVN Mergeinfo 属性的主要内容,如果未能解决你的问题,请参考以下文章

SVN 中的工作副本 XXX 被锁定并且清理失败

如何将 SVN 工作副本中的修改保存到 zip 文件

SVN post-commit hook:根据提交所属的项目更新工作副本

SVN重新定位还是切换?

svn 没有本地副本

svnupdate会把代码直接覆盖吗