1

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

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

查看他执行此操作时的日志条目,它显示的只是: Action Path Copy from path Revision Deleted /Project/Directory/trunk/old_dir_name added /Project/Directory/trunk/new_dir_name /Project/Directory/trunk/old_dir_name 12345

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

我该如何解决这个问题,以便我可以根据需要使我的分支保持最新?

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

4

1 回答 1

0

这是自 2002 年以来众所周知的 svn 错误 - 请参见此处

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

为什么会发生这种情况?这很简单 - svn rename 实现为删除文件 (a) 并使用新名称 (a') 添加它。因此,在我的示例中,分支上的 (a') 和 (a) 不是从同一个文件继承的。然而,svn 试图最小化问题并添加到 (a') 标记信息关于 (a),所以如果你执行 svn log on (a') 你会看到重命名操作,以及 (a) 的更改。

于 2011-09-01T11:50:51.280 回答