[英]Tortoise SVN merge two branches
我正在尝试将两个分支与乌龟 SVN 合并。 两个分支自从分开后都发生了变化。 如果我合并它们,则只有其中一个的更改会获得,而另一个的更改将被覆盖。 但我想要每个文件的最新更改(我们没有在同一个文件中工作)。
我尝试了“合并两个不同的树”选项,并在“From:”和“To:”中输入了两个分支。 我对两者都进行了头部修订。 我将其他所有内容保留为默认值(合并深度:工作副本,比较空格,其他所有内容均未选中)
在From URL
选项中,您应该指定要合并到的分支。
例如,假设有 2 个分支,分支A
和分支B
,并且您想将分支B
合并到分支A
。
Merge
选项,然后选择Merge two different trees
选项。From URL
,请提及分支A
的To URL
,在To URL
,请提及分支B
URL。 这应该将分支B
合并到分支A
而不会丢失任何文件。
参考:在此处找到此声明
在 Subversion 中的合并总是在本地完成。 您要合并到的分支应该使用干净的检出方式检出。 也就是说,它应该是最新的,没有本地更改。 然后将另一个分支合并到其中并提交更改。
合并不是特定分支的副本。 合并通常是一种三向操作。 您有要合并到的分支(称为yours )、要合并的分支(称为theirs )和最后一个共同祖先(LCA)。 最后一点很重要。
如果您的分支发生更改,则在合并过程中不会触及它。 合并算法知道这一点,因为您的算法和 LCA 之间存在差异。 如果 LCA 和他们的 LCA 之间存在差异,则考虑进行更改。
如果我明白你有:
branch1
取自主干。branch2
取自branch1
。 你想合并什么? 是否要将branch1
和branch2
合并到主干中。 如果您通过 Subversion将trunk
复制到branch1
通过 Subversion将branch1
复制到branch2
这应该是可能的。 这样,Subversion 就知道这两个分支在它们的历史上是相关的。
如果您创建了分支,使用 Windows 复制文件并添加了文件,则两个分支之间没有历史记录,合并会更加困难。
可以将branch2
的更改合并到branch1
吗? 如果是这样,我会做这样的事情:
branch2
branch1
到branch2
并提交这些更改。 branch2
将在所有的变化branch1
。trunk
branch2
合并到trunk
。 Trunk 现在将在branch1
和branch2
进行所有更改。当您尝试使一个分支看起来与另一个分支完全相同时,“合并两个不同的树”选项很有用。
相反,如果您希望输出分支包含来自两个分支的更改,则应使用“合并修订范围”选项。
使用合并一系列修订选项的步骤:
注意: output branch
是指您要将更改合并到的分支。 而input branch
指的是你想在输出分支中合并其更改的分支
output branch
的干净工作副本input branch
input branch
的所有修订,请选择“所有修订”。 如果您只想合并特定修订,请选择“特定范围”并使用“显示日志”按钮选择修订。 TortoiseSVN在这方面很聪明,任何已经合并的修订都会变灰并标有已经合并的图标output branch
有关更多详细信息,请参阅TortoiseSVN Docs on Merging
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.