Tortoise SVN合并了两个分支

dee*_*etz 16 svn tortoisesvn merge branch

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

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

小智 23

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

例如,假设有2个分支,分支A和分支B,并且您希望将分支合并B到分支A.

  • 在TortoiseSVN中,单击Merge选项,然后选择Merge two different trees选项.
  • From URL,请提到分支的URL以及分支ATo URL提及URL B.

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

  • 在我看来也是如此,但在 [here](https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-merge.html) 中找到了这个声明“在发件人:字段中输入主干的完整文件夹 URL 。这**可能听起来不对**,但请记住,主干是您要将分支更改添加到的起点。” (4认同)
  • 好吧,这似乎是相反的。 (3认同)

Dav*_* W. 9

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

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

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

如果我理解你有:

  • branch1 是从树干上取下的.
  • branch2取自branch1.

你想要合并什么?你想合并两个branch1branch2进入主干.如果这应该是可以复制 trunkbranch1通过Subversion和复制 branch1branch2通过颠覆.这样,Subversion知道这两个分支在它们的历史中是相关的.

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

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

  • 查看 branch2
  • 合并branch1branch2和提交这些更改.branch2将有所有的变化branch1.
  • 查看 trunk
  • 合并branch2trunk.现在干线将在双方所有的变化branch1branch2.