这是场景:
- User1,Branch1:添加“abc.def”;提交。
- User2,Branch2:添加“abc.def”(相同的文件名,但文件中的更多详细信息);提交。
现在 User1 想要合并“abc.def”文件的更新版本。因此(使用 TortoiseSVN 1.7.10),User1 从 Branch1 的工作副本开始,选择Merge...
-> Reintegrate a Branch
,然后选择 Branch2 并选择Merge
。可以预见的是,会产生“树冲突”,并带有以下文本:
最后一次合并操作尝试从 Branch2 添加文件“abc.def”,但该文件已在本地添加。你想如何解决这个冲突?
但唯一的选择是标有 的单个按钮Keep the local file
。没有选择远程文件的选项,这是 User1 真正想要的文件。
我在这里做错了什么,我该如何解决?更具体地说,如何将 User2 的文件版本放入 Branch1?
(当然,我确信 User1 可以在合并之前手动删除文件,但这会抹掉 User1 可能想要保留的任何历史记录。另外,这只是一个笨拙的工作流程,尤其是当这种困境中存在大量文件时。)
不幸的是,在关于树冲突的 TortoiseSVN 文档中甚至没有提到这种情况
更新:
除了选择“ Reintegrate a Branch
”我还尝试过“ Merge a Range of Revisions
”和“ Merge two different trees
”。对于后一种情况,我选择远程分支(Branch2)作为“开始”,选择本地分支作为目标(Branch1;在添加文件之前选择修订版。)在所有情况下我都得到了相同的结果:树与没有选择文件的 User2 版本的选项发生冲突。
更新#2:
根据文档,“合并进度对话框中应该有一个名为Merge non-interactive
”的复选框,如果未选中,则应该在合并期间打开“合并冲突回调对话框”。但是,我在合并过程中找不到任何这样的复选框。它在哪里?