我们尝试仅将'svn:mergeinfo'属性保留在根分支文件夹中.但是,我们一直看到它爬进子文件夹.我们已经找到了一些可能的原因:
在repo-browser中移动文件夹
在IntelliJ中移动和/或重命名包
使用旧的svn客户端
任何人都可以提供我们不应该做的事情列表,以避免意外创建这些属性吗?
我们使用的工具是IntelliJ 8(很快9),Ankh,TortoiseSVN和SlikSvn.
不幸的是,旧的svn客户端只是这样做,任何基于这些旧版本的svn的工具也被打破了.解决此问题的唯一方法是在提交之前删除创建的svn:mergeinfo条目.由于大多数人都不知道它们是被创建的,因此唯一真正的强制执行方式是预提交挂钩,或者只是简单地执行:
svn propdel --recursive svn:mergeinfo $ROOT/*
不时地把它们清理干净.这样做的时候,因为它会破坏你的部分合并的任何记录小心已经完成,所以你应该真的只有这样做,如果你真的不这样做的部分合并.提问者不会,也不会在我们的环境中.
问题在较新的svn客户端中得到修复,因此问题应该慢慢消失,但这可能需要一些时间才能更换工作流中的所有工具.
根据这个问题的另一个答案,快速解释导致问题的原因.当您执行工作副本移动或删除早于1.5.5的svn客户端时,会创建一个虚假的svn:mergeinfo条目.这在svn 1.5.5中得到解决.