我已经阅读了一些文档和博客,关于合并一系列修订和重新整合之间的区别,但我没有得到一件事.
如果我选择一种或另一种方式从分支合并到主干,合并有什么区别?为什么合并一系列修订在某些情况下不起作用,但重新整合成功合并分支到主干?
这是场景:
现在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,如果未选中,则应该在合并期间打开"合并冲突回调对话框".但是,我在合并过程中找不到任何此类复选框.它在哪里?
我用乌龟svn.但总的来说,我对svn还是比较新的.我有一些git的经验.
在文件中说
重新整合分支
这个方法涵盖了Subversion书中讨论的功能分支的情况.所有主干更改都已逐周移植到功能分支,现在功能已完成,您希望将其合并回主干.
据我所知:功能分支的正常工作流程是,要创建一个功能分支,在其上进行开发,经常在主干分支上的错误修正的修订范围内合并.功能完成后,最后合并主干更改,然后将分支重新集成到主干中.
所以我有一些问题: