分支用来维护独立的开发支线,在一些阶段,你可能需要将分支上的修改合并到最新版本,或者将最新版本的修改合并到分支。

此操作十分重要,在团队开发中,如果你是SVN
的维护者此环节可以说是必不可少,因为团队开发中如果使用了分支,那样合并分支到主干、或者分支合并分支的操作是必须的。

如果不使用分支,直接在主干上修改的话,主干版本可能会变得十分混乱。维护难度大大加大。

下面以使用TortoiseSVN为例,任何SVN的客户端工具其实都大同小异。

一、分支的合并

点击菜单上的合并按钮,出现如图窗口,一般的使用第三个选项即可。如图所视。

点击下一步

注意填写起始和结束的URL
及版本,尤其重要。这一步将影响你合并后所得的版本。

简单的说,“结束的URL
和版本”是此次操作的最终标准。而“起始URL
和版本”一般情况下必须是该分支创建的起始版本。

比方说,这次分支是从主干100
上创建的,而分支的起始版本是101
。最终分支完成后的版本是105

简单情况下,主干上的版本没有被更新,依然是100
。如果想把分支功能合并到主干上的话,我们可以在主干100
的工作副本中点击合并,然后“起始URL
和版本”填写主干的URL
,版本100(
或者HEAD
,因为最新版本也是100)
,然后“结束的URL
和版本”填写分支的URL
和版本105(
也可以是HEAD)
即可。

操作完成后,此次合并效果会在工作副本上呈现,如果有问题请使用还原,撤销此次修改操作。

注:其他SVN

的插件大同小异。

二、多分支合并

参考单分支的分支操作,而多分支的情况简单来说有两种:

  • 分支中的起始版本一致

比方说现在有两个分支,分支A
和分支B
。他们分别从主干T
创建分支。

主干T
版本100
,分支A
的版本101
,分支B
的版本号102

当分支A
和分支B
都各自完成开发,并且提交到SVN
上后。A
的版本号为110
,而B
的版本号为115

此时必须两步操作,并且操作在主干T
的工作副本内执行:

1)

主干T
合并分支A

起始URL

和版本

主干T
的URL
、版本100

结束的URL

和版本

分支A
的URL
、版本110

2)

合并分支A
后再继续合并分支B

起始URL

和版本

主干T
的URL
、版本100

结束的URL

和版本

分支B
的URL
、版本115

注意:完成第一步的时候不必提交。

  • 分支中的起始版本不一致

比方说现在有两个分支,分支A
和分支B
。分支A
是从主干T
版本100
上创建,分支A
版本101
。创建分支A
后,主干上又做了其他修改,并且更新成版本102

然后主干T
版本102
的基础上创建分支B
,分支B
版本号为103

两个分支各自开发,最终分支A
版本号为110
,而分支B
的版本号为120

此时合并操作应该为三步,多的一步其实就是把起始版本统一:

1)

分支A
更新主干100-101
的更新,在分支A
的工作副本内执行。

起始URL

和版本

主干T
的URL
、版本100

结束的URL

和版本

主干T
的URL
、版本101

无误后提交修改。分支A
此时最终版本修改为121

2)

主干T
合并分支A

起始URL

和版本

主干T
的URL
、版本102

结束的URL

和版本

分支A
的URL
、版本121

3)

主干T
合并分支B

起始URL

和版本

主干T
的URL
、版本102

结束的URL

和版本

分支B
的URL
、版本120

看起来比较繁琐,其实最终目的还是把起始的版本统一,然后再把主干和分支上的差异修改添加到主干之上。

SVN支干合并(转载)的更多相关文章

  1. SVN分支与合并【超详细的图文教程】(转载)

    SVN分支与合并 一. 分支与合并的概念 二. SVN分支的意义 三. 如何创建分支与合并分支 一.分支与合并的概念: 分支:版本控制系统的一个特性是能够把各种修改分离出来放在开发品的一个分割线上.这 ...

  2. eclipse svn分支与合并操作

    以前做项目的时候没有用过svn的分支合并操作,今天用到了,刚开始还真不会啊.最后查了下就是这么的方便.专门记录下来. 原文来自:http://blog.csdn.net/lisq037/article ...

  3. 详细说明svn分支与合并---命令行

    一,svn分支与合并有什么用? 作程序的,对svn在熟悉不过了,但对svn分支熟悉的,我想并不多.因为一般情况下,是用不着svn分支的,其实也没有那个必要.下面我例举几个需要用到svn分支的情况: 1 ...

  4. SVN 分支及合并的介绍和实践---命令行

    写在前面 一些相关的概念和原理 进行分支开发的最佳实践 合并的分类 在 Eclipse 中进行合并操作 相关资源 写在前面 本文是由演讲整理而来的,介绍了 SVN 分支与合并的概念.流程和一些实际操作 ...

  5. SVN版本分支合并

    SVN,开发中常用的工具,也没什么可说的.这里只是记录一下,以免太久不用了想用的时候又忘了. 首先已经有两个目录,一个是分支目录SVNChild,一个是主干目录SVNMain.SVNChild是从SV ...

  6. 详细说明svn分支与合并,以及实例

    详细说明svn分支与合并,以及实例 一,svn分支与合并有什么用? 作程序的,对svn在熟悉不过了,但对svn分支熟悉的,我想并不多.因为一般情况下,是用不着svn分支的,其实也没有那个必要.下面我例 ...

  7. 实例讲解SVN分支和合并问题(转)

    本节向大家简单描述一下SVN分支和合并方面的知识,在学习SVN的过程中SVN分支和合并时经常遇到的问题,在这里和大家分享一下,希望本文对大家有用. 关于主线同SVN分支合并的概念及如何使用的误区此问题 ...

  8. SVN 分支代码合并到主线

    SVN 分支代码合并到主线 步骤一安装TortoiseSVN 客户端,在本地 checkout主线代码 步骤二:创建branches分支 步骤三.branches修改提交代码 步骤四:分支代码合并到主 ...

  9. [No000098]SVN学习笔记5-分支,合并,属性,补丁,锁,分支图

    行结束符和空白选项 在项目的生命周期中,有时可能会将行结束符由 CRLF 改为 LF,或者修改一段代码的缩进.不幸的是这样将会使大量的代码行被标记为已修改,尽管代码本身并没有被修改.这里列出的选项将会 ...

随机推荐

  1. android wifi 调试

    (一)root你的Android(相信绝大多数人现在的手机已经ROOT了.(二)下载app: adbWireless,并安装到手机上.(三)安装adb工具包,其实,要在windows下使用ADB工具, ...

  2. D-Link service.cgi远程命令执行漏洞复现

    1.1 概述 友讯集团(D-Link),成立于1986年,1994年10月于台湾证券交易所挂牌上市,为台湾第一家上市的网络公司,以自创D-Link品牌行销全球,产品遍及100多个国家. 1月17日,C ...

  3. 一张图,关于 Bayes error rate,贝叶斯错误率等的分析

    造轮子是那帮搞研究的“科学家”干的事情(类似E&E里的explore),“工程师”的职责是利用已有的东西解决问题(类似E&E里的exploit). 其次,即使以工程师的角色解决业务问题 ...

  4. iOS for循环创建button,button的宽度依据上面的文字来自适应.

    近期须要使用一个标签页,寻思自己写一个demo. 标签的大小依据上面的文字来自适应大小,须要依据后台返回的数据自己主动换行.没有加入 NSArray *arr = @[@"无知", ...

  5. openfire常见几类插件开发研究与总结

    openfire 的插件可以访问所有openfire的API,这给我们的插件实现提供了巨大的灵活性. 以下介绍几类比较常用的插件集成方式: 基于源码XMPP协议的插件 比如:IQHandler,常用来 ...

  6. 2016.6.21 maven使用cmd新建项目时,failed to execute goal org.apache.maven.plugins:maven-archetye-plugin:2.4:generate...

    在学习maven的时候,想要新建一个maven工程,在命令行执行create或generate命令. 错误如图所示: failed to execute goal org.apache.maven.p ...

  7. haifeng

    [root@localhost 桌面]# yum list|grep wubi ibus-table-chinese-wubi-haifeng.noarch -.el7 base ibus-table ...

  8. eclipse学习

    网上转载,以作以后学习之用! eclipse学习 关键字: eclipse学习 1 eclipse插件安装方法(link方法) 一般插件包含一个eclipse目录,其下是features和plugin ...

  9. Hibernate学习二----------hibernate简介

    © 版权声明:本文为博主原创文章,转载请注明出处 1.hibernate.cfg.xml常用配置 - hibernate.show_sql:是否把Hibernate运行时的SQL语句输出到控制台,编码 ...

  10. Lua学习六----------Lua流程控制

    © 版权声明:本文为博主原创文章,转载请注明出处 Lua流程控制 - 通过程序设定一个或多个条件语句 - 在条件为true时执行指定程序代码,在条件为false时指定其他指定程序代码 - 控制结构语句 ...