在中继目录名称更改后,SVN从主干到分支合并

时间:2011-09-01 11:40:25

标签: svn tortoisesvn svn-merge

我有一种情况,我分支中继,在我的分支机构进行了几天的开发工作后,其他人更改了trunk中项目目录的名称。像这样的东西:     from / Project / Directory / trunk / old_dir_name     到/ Project / Directory / trunk / new_dir_name

这给我带来了一系列问题(当然)。

查看他执行此操作时的日志条目,它显示的是:     操作路径从路径修订复制     已删除/项目/目录/ trunk / old_dir_name     添加/ Project / Directory / trunk / new_dir_name / Project / Directory / trunk / old_dir_name 12345

当我尝试将trunk的测试合并到我的分支中以便我有最新的更新时,我在一个文件上遇到了冲突错误。如果我尝试对该文件的最新版本进行测试合并,我会得到:错误存储库永久移动到'... /!svn / bc / 13649 / Project / Directory / old_dir_name / trunk'。

如何解决此问题,以便根据需要更新我的分支?

(如果重要的话我们使用TortoiseSVN前端)。

1 个答案:

答案 0 :(得分:0)

这是自2002年以来众所周知的svn bug - 请参阅here

例如,如果您在分支中重命名文件/目录(或其下的文件),并且在主干上更改了文件/目录(或其下的文件),则将分支合并到主干上会有问题。

为什么会这样?这很简单 - svn重命名实现为删除文件(a)并添加新名称(a')。因此,我的示例中的分支上的(a')和(a)不是从同一文件继承的。 Hovewer,svn尝试最小化问题并添加(a')关于(a)的标签信息,所以如果你svn登录(a'),你会看到重命名动作,以及(a)的变化。