SVN MERGE 方法(原创)

SNV merge操作

1. 创建分支 A

 

 

 

 

需要添加branch,a目录。但在提交的时候会提示目录已经存在,需要再删除它。

 

 

 

这样branch就建好了接下来做些修改,更新branch/a

 

 

2, Merge branch更新到trunk

 

 

选择Trunk merge

 

 

 

3.合并方式介绍

这里有两种选项,网上有介绍三种选项,不知道我的为什么只有两种

三种选项介绍

一、合并一个范围的版本

此类型应用最为广泛,主要是把分支中的修改合并到主干上来。在主干上点击右键选择合并,然后选择合并类型:合并一个范围的版本。

合并的源URL填写的是要合并的分支的URL,待合并的版本范围如果为空,则指的是合并分支上所有的版本,即自从分支创建以来到分支当前最新版本的 所有演变。如果只是选择其中一个版本,或者几个版本,那么就表示只是将制定的n个版本的变化合并到主干上。如果只是选择其中一个版本,那么表示只是选择那 个版本的修改,之前或之后的修改将不被采纳。

 

PS,这个好理解,就是从另一个分支合并到我所选择的分支。我可以选择trunk/branch.

 

二、复兴合并 (我的没有这个选项

    复兴合并可以理解为是第一种合并类型的一种特例,在复兴合并中,主干可以理解为是自从开创分支之后没有任何修改,而分支是经过修改的,而且合并中分支是没 有版本选择的。经过复兴合并,分支中所有的修改都会合并到主干中,合并的结果将使得分支和主干一模一样,从而可以删除分支。

 

三、合并两个不同的树

If you are using this method to merge a feature branch back to trunk, you need to start the merge wizard from within a working copy of trunk.

In the From: field enter the full folder URL of the trunk. This may sound wrong, but remember that the trunk is the start point to which you want to add the branch changes. You may also click ... to browse the repository.

In the To: field enter the full folder URL of the feature branch.

In both the From Revision field and the To Revision field, enter the last revision number at which the two trees were synchronized. If you are sure no-one else is making commits you can use the HEAD revision in both cases. If there is a chance that someone else may have made a commit since that synchronization, use the specific revision number to avoid losing more recent commits.

    此类型与前两种类型不同,第一种类型可以选择分支合并的版本,主干不能选择版本;第二种类型是主干和分支都不能选择合并的版本;而这种类型则是无论是主干 还是分支都可以选择合并的版本,即可以选择过去的一个主干版本与分支的某个版本进行合并。合并的时候以选择的分支版本为主,如果选择的主干版本与分支版本 有不同的地方,合并时主干部分将被放弃。

起始URL:选择主干目录的URL(应当和当前工作副本的URL一致,这个是所谓的合并点)

结束URL:选择要合并的分支的URL。

起始和结束的版本:一般起始版本应当找到最后一次同步时的版本,如果从没有同步过(第一次合并),则选择创建分支时的版本,结束版本一般是最新版本,如果你不想将某些内容合并进主干的话,也可以选择一个合并点。

PS: 与第一中不同的地方就是可以设定版本。需要注意的是起始URL是本地workplace.

结束url 是要合并的分支url.

4. 按合并一个范围的版本(分支a-->trunk)

 

 

 

 

 

Trunk目录变化情况,2个doc文档是已有的,branch/a的test1被加入到workplace中

 

 

 

Commit 之后就merge完成。

 

 

 

版本变化可以看出,从trunk18 创建分支a, a变更到25. 再merge分支到26

5. 按合并一个范围的版本(分支trunk -->a)

在trunk上修改,添加一个文件,使trunk版本到27.

 

选择branch/a, 执行merge.

 

 

FromUrl设为trunk的url. 继续下一步,按缺省设定,进行Merge。

 

 

Merge ok 后执行commit

 

 

 

 

revision 28 被加到branch/a

6.按合并两个不同的树(分支a-->trunk)

在branch/a 加入test3文件,并commit,版本到29

 

 

选择trunk 执行Merge,选择merge two diffrent trees.

 

 

 

 

From URL 设为trunk, To设为branch/a. 然后next 按缺省选择执行Merge. 并提提交。

Trunk合并了branch/a 版本变为30.

 

 

 

 

 

 

 

7. 合并不同的树(trunk --> 分支a)

Trunk 加入一个文件aaaa.txt, 更新revision 到34.

 

 

执行merge

 

 

Merge后,trunk被合并到branch/a

 

 

 

posted on 2016-08-06 11:26  莫水千流  阅读(1597)  评论(0编辑  收藏  举报