`

SVN merge 三种方式

    博客分类:
  • svn
 
阅读更多

摘自:http://chunanyong.iteye.com/blog/697255

 

1、Merge a range of revisions

2、Reintegrate a branch

3、Merge two different trees

 

合并的工作是把主干或者分支上合并范围内的所有改动列出,并对比当前工作副本的内容,由合并者手工修改冲突,然后提交到服务器的相应目录里。如果当前工作副本是主干,则合并的范围是分支上的改动,如果工作副本是分支的,则合并范围是主干上的改动,并且一定要注意,合并的起始位置URL一定要和当前的工作副本的URL是相同的。

 

一、合并一个范围的版本

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

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

 

二、复兴合并

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

 

三、合并两个不同的树

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

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

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

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

 

实例:

主干A在95版本的时候创建分支B,此时两棵树都是95版本

1、我在分支B上增加文件test.txt,提交。此时版本库升级到了96版本。

2、我在A上选择合并类型1,合并分支最新版本,结果是把test.txt加入A

3、我在A上选择合并类型2,合并分支最新版本,结果同上;

4、我在A上选择合并类型3,合并分支最新版本,结果同上;

5、我在A上增加文件test2.txt,提交,此时版本库升级到了97版本;

6、我在A上选择合并类型1,合并分支最新版本,结果是把test.txt加入A;

7、我在A上选择合并类型2,合并分支最新版本,结果是把test.txt加入A;

8、我在A上选择合并类型3,主干选择当前97版本,合并分支最新版本,结果是把test.txt加入A,把test2.txt从A删除。

9、我在A上选择合并类型3,主干97以前的版本,合并分支最新版本,结果是把test.txt加入A,而A中保留着test2.txt。

 

将分支合并到主干上,首先需要在主干的工作副本下进行,合并的范围是从主干的上次合并的版本开始到分支上最新的版本结束,如果是第一次合并,则从主干创建分支的版本开始,所以每次合并要做好说明,在日志中体现,不然忘记了下次再合并就有点麻烦。其实,应当尽量避免一个分支合并多次,分支的作用一般为了解决bug,一旦bug对应结束了,分支的使命就结束了,以后再出现其他的问题,应当重新建立分支,这样就不会出现多次合并的问题了。

分享到:
评论

相关推荐

    SVNMerge源代码SVNMerge源代码

    SVNMerge源代码SVNMerge源代码SVNMerge源代码

    svn merge简单操作

    关于SVN下不同分支代码的Merge的透彻理解.zip

    多分支开发,Merge是一个绕不过的话题,不管是Git还是SVN,公司用的是SVN,之前对于SVN的Merge没有很好的研究,出了些状况,这个问题不解决,顺畅地进行多分支开发就是海市蜃楼,下定决心把这块给完全搞透,在百度上...

    SVN解决冲突(合并别人的修改)

    SVN解决冲突(合并别人的修改) 详细讲解了svn冲突合并的方法 非常适合初学者学习

    svn 合并、冲突及常用功能详解

    svn的合并和冲突的解决一直以来困扰着很多人,该文档以图解的形式举例介绍svn的merge与冲突。

    svnmerge部分的详细说明

    解决版本冲突-使用SVN主干与分支功能 大多数产品开发存在这样一个生命周期:编码、测试、发布,然后不断重复。通常是这样的开发步骤:1)开发人员开发完毕某一版本(如版本A)功能后,提交测试;2)测试人员对待发布...

    SVN使用手册中文版快速入门

    svn merge svn mkdir svn move svn propdel svn propedit svn propget svn proplist svn propset svn resolved svn revert svn status svn switch svn update svnadmin svnadmin Switches svnadmin Subcommands ...

    SVN使用手册中文版.chm

    svn merge svn mkdir svn move svn propdel svn propedit svn propget svn proplist svn propset svn resolved svn revert svn status svn switch svn update svnadmin svnadmin Switches svnadmin Subcommands ...

    SVN教程+TortoiseMerge教程

    包含svn-book.pdf(完全教程) TortoiseMerge.pdf TortoiseSVN简明教程.pdf TortoiseSVN-1.6.11-zh_CN.pdf

    Svn版本管理教程

    网上发觉的一个比较全的svn使用教程,里面有svn比较详细的使用流程及目录组织结构(trunk,branches,tags)。最重要的是提供了团队利用svn进行开发的方法,以及版本合并(Merge)的方法

    smartsvn for mac

    除了标准的SVN指令(例如checkout、update、commit、merge等)之外,其亦提供tag与branch处理(无需要为了转换不同的tag或branch而去处理URL)、内建档案比对与冲突处理器(conflict solver)等。使用者无需安装额外的工具...

    smartsvn_keygen

    smart svn,支持merge, 支持1.7previw

    AnkhSvn操作手册

    1、AnkhSVN 图标样例表 35 附件 2、Overview of CollabNet Merge Client 36 附件 3、Creating and Applying Patches 47 附件 4、Changelists 50 1 AnkhSVN 概述 AnkhSVN 为 VisualStudio 提供的一个 Subversion 源码...

    SmartSVN含注册机

    除了基本的Subversion命令如checkout, update, commit, merge以外,它也支持标签和分支处理(无需处理URL),有内置的比较和冲突解决工具,无需安装其他工具就可以处理SVN工作拷贝。 其最大的优势就是操作非常简单和...

    svn config

    svn config merge svn jiaocheng

    smartsvn-windows-setup-11_0_4.zip

    除了标准的SVN指令(例如checkout、update、commit、merge等)之外,其亦提供tag与branch处理(无需要为了转换不同的tag或branch而去处理URL)、内建档案比对与冲突处理器(conflict solver)等。使用者无需安装额外的工具...

    SVN分支与合并【超详细的图文教程】

    SVN分支的意义: 简单说,分支就是用于区分开发版本与当前发布版本的。  1、 主干负责新功能的开发  2.、分支负责修正当前发布版本的bug(对于可以放入下个发布版本的改进性bug可以直接在主干上开发)  3.、...

    Smartsvn8 part1

    除了基本的Subversion命令如checkout, update, commit, merge以外,它也支持标签和分支处理(无需处理URL),有内置的比较和冲突解决工具,无需安装其他工具就可以处理SVN工作拷贝。 其最大的优势就是操作非常简单和...

    Smartsvn9.2.2 MAC破解版

    除了基本的Subversion命令如checkout, update, commit, merge以外,它也支持标签和分支处理(无需处理URL),有内置的比较和冲突解决工具,无需安装其他工具就可以处理SVN工作拷贝。 其最大的优势就是操作非常简单和...

    SVN trunk, branch, tag merge 等的应用

    NULL 博文链接:https://linleizi.iteye.com/blog/1962031

Global site tag (gtag.js) - Google Analytics