2013-08-19 63 views
22

我有一个分支,我正在做单独的更改。其他队友在干线上进行更改。情景是,现在我想给一个版本包括主干更新+我的分支更新。由于我还没有完成完整的模块,我不想将分支合并到主干。相反,我想从trunk中创建另一个新分支,然后将我的分支更改合并到该新分支。 这样我就可以用新的分支完全更新我的分支更新+最新的主干更新合并两个分公司使用乌龟SVN

我使用乌龟SVN合并,这是我做过什么:

比方说,在后备箱有一个新添加的文件:A,这是不是我的分支有。所以新创建的分支也有文件A.(我使用合并选项:“合并两棵不同的树”)我去新的分支文件夹,并将该分支URL给[FROM]字段,并给我的分支URL为[ TO]字段。当我进行合并时,它从本地副本中删除该文件。显然我所理解的是,合并将新的分支状态带到我的分支状态,而不是集成这些更改。

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

如何做到这一点?

+0

这是您当前的svn,(trunk == newbranch)。现在你想合并你的工作分支(你知道具体修订版(200到266和290,293)需要合并。请问confim是进一步进行的前提条件吗? – Ashif

+0

是Olive。我想合并我的分支作品到新的分支,这是一个主干的精确副本,请一步一步地提到这样做 –

回答

2

我会从主干创建一个新的分支比通过新的分支合并你的分支合并一个版本范围的。因为新分支更新都应该正常工作。

+0

是的Micha,这是我最初的做法,但因为树枝在更新,而我在我的分支进行了开发,所以没有根据我的理解,如果主干没有更新,而我的分支工作,那么这种方法工作正常。 –

+0

应该工作,无论是否更新干线,因为已知的svn关系。是的,你可以接受冲突,但基本上它应该工作。在我重返在主干分支合并我的更新形式躯干分支比分支(新功能)在行李箱中。这有助于我解决很多冲突。 – Micha

46
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 

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

Finaly merge is completed[picture6] 

enter image description here

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

+1

完成后QA如何合并“newbranch”回“主干”? – bsobaid

+0

你需要首先使用“合并范围的修改”选项,从树干的所有修改合并到你的分支,然后,一旦你这样做,你“合并两个不同的树”,选择你的躯干为“从”和分支作为你的'to'版本。 – keithl8041

+0

很好的答案。 “newBranch”不应该在**分支**吗? :) –