Tortoise SVN合并了两个分支

问题描述 投票:15回答:2

我正在尝试将两个分支与乌龟SVN合并。自分歧以来,这两个分支都发生了变化。如果我合并它们,只会获得其中一个的更改而另一个的更改将被覆盖。但我希望每个文件的最新更改(我们没有在相同的文件中工作)。

我尝试了“Merge two different trees”选项并在“From:”和“To:”中输入了两个分支。我对两者进行了头版修订。我将其他所有内容都保留为默认值(合并深度:工作副本,比较空格,其他一切未选中)

svn merge tortoisesvn branch
2个回答
22
投票

From URL选项中,您应指定要合并的分支。

例如,假设有2个分支,分支A和分支B,并且您想要将分支B合并到分支A

  • 在TortoiseSVN中,单击Merge选项,然后选择Merge two different trees选项。
  • From URL,请提及分支A的URL和To URL,提及分支B的URL。

这应该将分支B合并到分支A而不会丢失任何文件。

参考:发现此声明here


9
投票

Subversion中的合并总是在本地完成。您要合并的分支应该使用干净的结帐进行检出。也就是说,它应该是最新的,没有本地更改。然后,将其他分支合并到其中并提交更改。

合并不是特定分支的副本。合并通常是三方面的操作。你有一个你正在合并的分支(称为你的)你正在合并的分支(称为他们的分支)和最后一个共同的祖先(LCA)。最后一个很重要。

如果您的分支机构发生了更改,则在合并过程中不会触及该更改。合并算法知道这一点,因为你和LCA之间存在差异。如果LCA与他们之间存在差异,则考虑进行更改。

如果我理解你有:

  • branch1是从树干中取出的。
  • branch2取自branch1

你想要合并什么?你想把branch1branch2合并到主干。如果你通过Subversion将trunk复制到branch1并通过Subversion将branch1复制到branch2,这应该是可能的。这样,Subversion知道这两个分支在它们的历史中是相关的。

如果您创建了分支,使用Windows复制文件并添加了文件,则两个分支之间没有历史记录,并且合并更加困难。

是否可以将branch2的变化合并到branch1?如果是这样,我会做这样的事情:

  • 结帐branch2
  • branch1合并到branch2并实施这些更改。 branch2将拥有branch1的所有变化。
  • 结帐trunk
  • branch2合并到trunk。 Trunk现在将在branch1branch2中进行所有更改。
© www.soinside.com 2019 - 2024. All rights reserved.