以下是该方案:
现在,User1想要合并" abc.def"的更新版本。文件。所以(使用TortoiseSVN 1.7.10),User1从Branch1的工作副本开始,选择Merge...
- > Reintegrate a Branch
,然后选择Branch2并选择Merge
。可以预见的是,#Tree树冲突"结果,用这个文字:
最后一次合并操作试图添加文件' abc.def'从Branch2,但该文件已在本地添加。 您想如何解决这一冲突?
但唯一的选择是标有Keep the local file
的单个按钮。 没有选择远程文件的选项,这是User1真正想要的文件。
我在这里做错了什么,我该如何解决?更具体地说,如何将User2的文件版本转换为Branch1?
(当然,我确定User1可以在合并之前手动删除文件,但这会消除User1可能想要保留的任何历史记录。此外,它只是一个笨重的工作流程,特别是在那里在这种困境中有很多文件。)
不幸的是,TortoiseSVN documentation on Tree Conflicts
中甚至没有提到这种情况更新:
除了选择" Reintegrate a Branch
"我也试过" Merge a Range of Revisions
"和" Merge two different trees
"。对于后一种情况,我选择远程分支(Branch2)作为"开始"并将本地分支作为目标(Branch1;选择Revision previous 添加文件。)我在所有情况下得到了相同的结果:Tree Conflict没有选择User2版本的选项文件。
更新#2:
根据the documentation,合并进度对话框中应该有一个名为Merge non-interactive
"的复选框,如果未选中,则会打开"合并冲突回拨对话框"在合并期间。但是,我在合并过程中找不到任何此类复选框。它在哪里?
答案 0 :(得分:1)
我可以通过以下程序在TortoiseSVN 1.9版本中从一个分支合并到另一个分支。
<强>设置强>
使用测试存储库,我执行了以下步骤:
创建一个分支,“第一个”
添加文件并将其提交到新分支
创建一个分支,“第二个”
添加文件并将其提交到新分支
所以我的结构如下:
branches/
first/
doc.txt => "FIRST"
second/
doc.txt => "SECOND"
<强>合并强>
在此示例中,我的目标是将second/doc.txt
的内容放入第一个分支。
右键单击first
分支文件夹,然后选择TortoiseSVN&gt;合并...
使用/branches/first
的网址填写“发件人”框,并使用/branches/second
的网址填写“收件人”框。
(这是我最初被绊倒的地方 - 我认为这是相反的!The docs解释:“这可能听起来不对,但请记住,行李箱是您想要添加分支变化的起点。 “)
答案 1 :(得分:0)
Reintegrate a branch vs merge a range of revision
我认为您要做的是首先合并一系列修订,然后将分支合并回树中。
答案 2 :(得分:0)
有一个名为
的对话框合并冲突回调对话框
应该出现Merge Conflict Callback Dialog - 通过&#34合并多个修订版时;合并一系列修订版&#34; - 合并时通过&#34;重新整合分支&#34;
目前,合并冲突回调对话框只出现在 第一个案例。
它将包含在即将发布的1.6.0版本中。
这允许您选择存储库更改而不是