重新整合分支与合并两个不同的树:TortoiseSVN
Reintegrate a branch vs Merging Two Different Trees : TortoiseSVN
我打算使用 TortoiseSVN 资源管理器客户端将一个分支合并到主干。 (我还需要做相反的事情,即从主干合并到分支。)
我的做法
这就是我计划使用合并两棵不同的树将分支合并到主干的方式:
Merge Trunk in to Branch using tortoise
检查我本地盒子上的后备箱。右键单击签出的副本,然后 select 合并两棵不同的树。在下面
来自:(开始URL和revision of the range to merge),我会提到主干URL和下
致:(结束URL和合并范围的修改),我会提到分支URL
备选方案
当我右键单击 trunk local copy 和 select Merge 时,我看到两个相关选项
1) Reintegrate a branch
2) Merging Two Different Trees
但我不确定它们之间有什么区别:哪个更好地将分支合并到主干?
更新:- 我在网上读到的大多数地方都说应该使用 Merge a range of revisions
(而不是 Reintegrate the branch
将分支合并回主干).
所以要合并 100 个不连续的修订,我需要先记下这些修订,然后为 Merge a range of revisions
提及那些修订。对吗?
如何合并
您几乎肯定想要合并一系列修订,但您可能会在 Tortoise 中看到三种可能性:
- 重新整合一个分支:更新你的客户端!这个不行longer 出现在 Tortoise 1.8 中,它更擅长计算如何合并。
- 合并一系列修订:通常主干和分支共享一个共同的起源,因为通常从主干创建分支;然后他们开始分歧,如果你想合并更改从一个到另一个(并且你的 Subversion 服务器是 运行 至少 1.5),你应该使用 Merge a range of revisions.
- 合并两个不同的树:如果你的版本库中的分支不是由 Subversion 复制操作创建的,或者如果你使用的是旧的(1.5 之前的)服务器)Subversion 不能所以很容易找出它应该改变什么,你需要给它更多的信息。在这种情况下,您可能必须使用合并两个不同的树。
您可以考虑在没有 Tortoise 的情况下使用 svn
命令,但我认为您会发现 Tortoise 会更顺利地引导您完成该过程,并且 Edit conflicts
功能 – 如果您需要 –很有帮助。
您可能想要合并所有更改或仅合并部分更改;在后一种情况下,如果您使用 Tortoise 并提交了正确的日志消息,您将能够在合并对话框中识别并 select 您想要的修订;已经合并的修订版也将变灰(对于服务器 > 1.5)。也就是说,最好不要在合并之前将它留得太久:这样你可以更好地记住你做的事情,并且分支可能会有更少的分歧,从而减少冲突的风险。
合并后
如果合并后出现任何冲突,最简单的方法是保持合并对话框打开,然后一个一个地右键单击有冲突的文件,然后选择编辑冲突 – 这将向您显示代码中已在主干和分支中修改的地方,您将必须弄清楚如何手动组合它们。如果您确实关闭了对话框,您可以使用 检查修改 对话框来获得相同的可能性;您甚至可以使用 Commit 对话框,但通常最好在合并代码正确之前不要实际提交。
解决所有冲突后,编译并测试您的系统(最好不要进行任何不相关的修改),并在满意后提交。
不要太担心你会把事情搞砸:因为你总是在工作副本中合并,所以只要你从头开始,不要过早提交,你就不会造成任何伤害。
参考资料
我建议您还查看 http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-merge.html and perhaps the Subversion documentation at http://svnbook.red-bean.com/en/1.7/svn.branchmerge.basicmerging.html 上的合并的 Tortoise 文档以获取更多详细信息和提示。
我打算使用 TortoiseSVN 资源管理器客户端将一个分支合并到主干。 (我还需要做相反的事情,即从主干合并到分支。)
我的做法
这就是我计划使用合并两棵不同的树将分支合并到主干的方式:
Merge Trunk in to Branch using tortoise
检查我本地盒子上的后备箱。右键单击签出的副本,然后 select 合并两棵不同的树。在下面 来自:(开始URL和revision of the range to merge),我会提到主干URL和下 致:(结束URL和合并范围的修改),我会提到分支URL
备选方案
当我右键单击 trunk local copy 和 select Merge 时,我看到两个相关选项
1) Reintegrate a branch
2) Merging Two Different Trees
但我不确定它们之间有什么区别:哪个更好地将分支合并到主干?
更新:- 我在网上读到的大多数地方都说应该使用 Merge a range of revisions
(而不是 Reintegrate the branch
将分支合并回主干).
所以要合并 100 个不连续的修订,我需要先记下这些修订,然后为 Merge a range of revisions
提及那些修订。对吗?
如何合并
您几乎肯定想要合并一系列修订,但您可能会在 Tortoise 中看到三种可能性:
- 重新整合一个分支:更新你的客户端!这个不行longer 出现在 Tortoise 1.8 中,它更擅长计算如何合并。
- 合并一系列修订:通常主干和分支共享一个共同的起源,因为通常从主干创建分支;然后他们开始分歧,如果你想合并更改从一个到另一个(并且你的 Subversion 服务器是 运行 至少 1.5),你应该使用 Merge a range of revisions.
- 合并两个不同的树:如果你的版本库中的分支不是由 Subversion 复制操作创建的,或者如果你使用的是旧的(1.5 之前的)服务器)Subversion 不能所以很容易找出它应该改变什么,你需要给它更多的信息。在这种情况下,您可能必须使用合并两个不同的树。
您可以考虑在没有 Tortoise 的情况下使用 svn
命令,但我认为您会发现 Tortoise 会更顺利地引导您完成该过程,并且 Edit conflicts
功能 – 如果您需要 –很有帮助。
您可能想要合并所有更改或仅合并部分更改;在后一种情况下,如果您使用 Tortoise 并提交了正确的日志消息,您将能够在合并对话框中识别并 select 您想要的修订;已经合并的修订版也将变灰(对于服务器 > 1.5)。也就是说,最好不要在合并之前将它留得太久:这样你可以更好地记住你做的事情,并且分支可能会有更少的分歧,从而减少冲突的风险。
合并后
如果合并后出现任何冲突,最简单的方法是保持合并对话框打开,然后一个一个地右键单击有冲突的文件,然后选择编辑冲突 – 这将向您显示代码中已在主干和分支中修改的地方,您将必须弄清楚如何手动组合它们。如果您确实关闭了对话框,您可以使用 检查修改 对话框来获得相同的可能性;您甚至可以使用 Commit 对话框,但通常最好在合并代码正确之前不要实际提交。
解决所有冲突后,编译并测试您的系统(最好不要进行任何不相关的修改),并在满意后提交。 不要太担心你会把事情搞砸:因为你总是在工作副本中合并,所以只要你从头开始,不要过早提交,你就不会造成任何伤害。
参考资料
我建议您还查看 http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-merge.html and perhaps the Subversion documentation at http://svnbook.red-bean.com/en/1.7/svn.branchmerge.basicmerging.html 上的合并的 Tortoise 文档以获取更多详细信息和提示。