使用Tortoise SVN合并两个分支

25
我有一个分支,我正在单独进行更改。其他团队成员在主干上进行更改。现在的情况是,我想发布一个包括主干和我的分支更新的版本。由于我还没有完成整个模块,我不想将分支合并到主干。相反,我想从主干创建另一个新分支,然后将我的分支更改合并到该新分支中。这样我就可以拥有包括我的分支更新和最新主干更新的新分支。
我正在使用Tortoise SVN Merge,我所做的如下:
假设在主干中有一个新添加的文件:A,而我的分支中没有该文件。所以新创建的分支也有该文件A。(我使用了“合并两个不同的树”选项)我进入新分支文件夹,将该分支url输入到[FROM]字段中,并将我的分支url输入到[TO]字段中。当我执行合并时,它会从本地副本中删除该A文件。显然,我所理解的是,合并已经将新分支状态变为了我的分支状态,而不是集成更改。
我的目标是将我的分支更改合并到新分支上,而不会丢失新分支所具有的最新更改。这样我就可以拥有新分支:最新的主干修改+我的分支更改。
如何做到这一点?

这是您当前的 SVN,(trunk == newbranch)。现在您想要合并您的工作分支(您知道需要合并的特定修订版本为 200 到 266 和 290、293)。请确认这是否是继续进行的前提条件? - Ashif
是的Olive。我想将我的分支作品合并到新的分支中;这是一个与主干完全相同的副本。请逐步说明如何操作。 - Priyan Perera
2个回答

49
Perform fresh checkout of your repository 
Precondition:( Suppose your repository name: Team )
1. You have trunk( Main Dev )
2. You have branch ( Your changes )
3. Create say "newbranch" from trunk.[ TortoiseSVN->Branch/tag][ Picture1 }Note:Select Head revision

这里输入图片描述

4. Perform svn Update inside "Team"->So newBranch is updated.[picture2]

在此输入图片描述

5. Now, select newbranch and merge[Tortoisesvn->Merge][Picture3]

在此输入图片描述

6. Select default "Merge a range of revision", to select revisions which you only intrested to merge.[[Picture4]

输入图片描述

7. Click, showlog to select required revisions you intrested on[picture5]

在此输入图片描述

 Finaly merge is completed[picture6]

enter image description here

注意:如果发生冲突,则需要手动合并冲突版本。


1
QA 完成后如何将 "newbranch" 合并回 "trunk"? - bsobaid
你需要使用“合并一系列修订版本”的选项,首先将所有来自主干的更改合并到你的分支中,然后再使用“合并两个不同的树”选项,选择你的主干作为“源”,选择分支作为你的“目标”修订版本。 - keithl8041
好答案。newBranch 不应该在 branches 中吗? :) - Jean-Francois T.
@Jean-FrancoisT。无关紧要,它也可以合并到主干中。分支/主干/标签只是开发/简单文件夹名称的符号表示。 - Ashif
@Ashif。我知道你能做到,那只是一种约定俗成的规范。但是在我们可以遵守规范的时候最好还是遵守规范 :) - Jean-Francois T.

3
我会创建一个从主干分支中新的分支,然后通过“合并一系列修订版本”将您的分支合并到这个“新分支”中。因为“新分支”是更新的,所以一切都应该正常工作。

是的Micha,那是我最初所做的。但由于主干在我分支开发时正在更新,所以它没有起作用。据我理解,如果主干在我的分支工作时没有更新,那么这种方法就可以正常工作。 - Priyan Perera
应该可以正常工作,无论主干是否更新,因为已知的svn关系。是的,你可能会遇到冲突,但基本上它应该可以工作。在将分支重新整合到主干之前,我将主干的更新合并到分支中,然后将带有新功能的分支合并到主干中。这有助于减少冲突。 - Micha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接