使用tortoise SVN合并两个分支

使用tortoise SVN合并两个分支,svn,tortoisesvn,Svn,Tortoisesvn,我有一个分支,我正在分别进行更改。其他队友在做后备箱的改变。场景是,现在我想发布一个版本,包括主干更新+我的分支更新。因为我还没有完成完整的模块,所以我不想将分支合并到主干。相反,我想从主干创建另一个新分支,然后将我的分支更改合并到该新分支这样我就可以用我的分支更新+最新的主干更新来完全更新新分支 我正在使用tortoise svn merge,我就是这么做的: 假设在主干中有一个新添加的文件:a,它在我的分支中没有。因此,新创建的分支也有文件A(我使用了合并选项:“合并两棵不同的树”),我转到

我有一个分支,我正在分别进行更改。其他队友在做后备箱的改变。场景是,现在我想发布一个版本,包括主干更新+我的分支更新。因为我还没有完成完整的模块,所以我不想将分支合并到主干。相反,我想从主干创建另一个新分支,然后将我的分支更改合并到该新分支这样我就可以用我的分支更新+最新的主干更新来完全更新新分支

我正在使用tortoise svn merge,我就是这么做的:

假设在主干中有一个新添加的文件:a,它在我的分支中没有。因此,新创建的分支也有文件A(我使用了合并选项:“合并两棵不同的树”),我转到新分支文件夹,将该分支url提供给[FROM]字段,并将我的分支url提供给[to]字段。当我进行合并时,它会从本地副本中删除该文件。显然,我的理解是,合并将新的分支状态转换为我的分支状态,而不是集成更改

我想要的是将我的分支更改合并到新分支,而不丢失新分支正在进行的最新更改。这样我就可以拥有新的分支:最新的主干修改+我的分支更改

如何做到这一点?

我将从主干创建一个新分支,然后通过合并一系列修订将您的分支合并到新分支中。因为新的分支较新,所以所有分支都应该可以正常工作

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


**注意:如果遇到冲突,则手动合并冲突修订。

这是您当前的svn(trunk==newbranch)。现在您想要合并您的工作分支(您知道具体的修订(200到266和290293)需要合并。请确认这是继续进行的先决条件吗?是的,Olive。我想将我的分支工作合并到新分支;这是主干的精确副本。请一步一步地说明这样做的过程。是的,Micha,这是我最初做的。但因为我在分支中进行开发时主干正在更新,所以它不起作用。据我所知,如果主干未更新,而我的分支正常工作,则此方法正常工作。由于已知的svn关系,无论主干是否更新,都应该正常工作。是的,您可能会收到冲突,但基本上应该正常工作。在我重新整合主干中的分支之前,我将更新从主干合并到分支,然后主干中的分支(具有新功能)。这有助于我解决许多冲突。如何将“新牧场”合并回“主干”QA完成后?您需要首先使用“合并一系列修订”选项将所有更改从主干合并到分支,然后在完成后“合并两棵不同的树”,选择主干作为“自”修订,选择分支作为“至”修订。回答不错。
newBranch
不应该在分支中吗?:)@让·弗朗索斯特。没关系,它也可以合并到主干。branch/trunk/tag只是开发/简单文件夹名的一个符号。@asif。我知道你能做到,那只是一个惯例。但如果可以的话,最好还是遵守惯例:)
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]