SVN支干合并(转载)

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

此操作十分重要,在团队开发中,如果你是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

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

时间: 2024-08-01 23:35:03

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

SVN创建分支/合并分支/切换分支

SVN创建分支/合并分支/切换分支 转载自:http://www.cnblogs.com/andy2simple/p/5386256.html 在建立项目版本库时,可首先建好项目文件夹,并在其中建立trunk, branches, tags三个空的子目录.这样在trunk中开始进行开发 trunk是主分支,是日常开发进行的地方. branches是分支.一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中.又比如为不同用户客制化的版本,也可以放在分支中

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

写在前面 一些相关的概念和原理 进行分支开发的最佳实践 合并的分类 在 Eclipse 中进行合并操作 相关资源 写在前面 本文是由演讲整理而来的,介绍了 SVN 分支与合并的概念.流程和一些实际操作方法,适合对版本控制有基本认识然后想了解 SVN 分支与合并的使用方法的读者. 对应 SVN 版本最低为 1.5,因为分支.合并的很多功能都是 1.5(release notes ) 才加进来的. 一些相关的概念和原理 分支(branch)和标记(tag)对于 SVN 来说就只是副本(copy),没

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

一,svn分支与合并有什么用? 作程序的,对svn在熟悉不过了,但对svn分支熟悉的,我想并不多.因为一般情况下,是用不着svn分支的,其实也没有那个必要.下面我例举几个需要用到svn分支的情况: 1,比较大的项目.比较大的项目,一般情况下会分成几个阶段来完.好比什么五年计划.到了某个阶段时,我建立一个分支,当个备份.万一将来开发下个阶段东西的时候,出现致命错误的时候,我还能把这个分支拿出来接着用. 2,项目要开发新的东西,但是又不想和主干冲突,建立一个分支,单独做为一个开发分支.这样做也是为了

监控svn访问记录(转载)

由于公司要求对svn的访问记录进行监控,所以需要对svn的服务器的配置做一些修改.其实也不是很麻烦,只是要做一些调整而己,之前的svn服务端是采用Apache的HTTP协议做为访问svn仓库的方式,所以只需要开启Apache的访问日志即可.基本方法如下:1:找到Apache的配置文件httpd.conf.2:用文本编辑器打开这个文件,查找包括"access_log"."error_log"这两个字符串的行,如果这些行前面有"#"这样的标记,那么就

eclipse svn分支与合并操作

以前做项目的时候没有用过svn的分支合并操作,今天用到了,刚开始还真不会啊.最后查了下就是这么的方便.专门记录下来. 原文来自:http://blog.csdn.net/lisq037/article/details/17501327 还可以参考如下几篇文章 http://toptree.iteye.com/blog/1143328 http://www.cnblogs.com/wenlong/archive/2012/05/07/2586853.html 要在svn主干上创建分支,用分支来进行

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

详细说明svn分支与合并,以及实例 一,svn分支与合并有什么用? 作程序的,对svn在熟悉不过了,但对svn分支熟悉的,我想并不多.因为一般情况下,是用不着svn分支的,其实也没有那个必要.下面我例举几个需要用到svn分支的情况: 1,比较大的项目.比较大的项目,一般情况下会分成几个阶段来完.好比什么五年计划.到了某个阶段时,我建立一个分支,当个备份.万一将来开发下个阶段东西的时候,出现致命错误的时候,我还能把这个分支拿出来接着用. 2,项目要开发新的东西,但是又不想和主干冲突,建立一个分支,

SVN版本分支合并

SVN,开发中常用的工具,也没什么可说的.这里只是记录一下,以免太久不用了想用的时候又忘了. 首先已经有两个目录,一个是分支目录SVNChild,一个是主干目录SVNMain.SVNChild是从SVNMain分出来的一个版本,即整个代码结构(文件夹.代码文件)基本一样的,当然新添加了部分文件.修改文件是正常的.如果不是,则合并的选项都不是一样的.SVN的分支合并有三种,这里只说分支合并到主干,主干合并到分支两种,第三种没用过,不太清楚.分支合并到主干.主干合并到分支操作基本一样,这里就以主干合

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

本节向大家简单描述一下SVN分支和合并方面的知识,在学习SVN的过程中SVN分支和合并时经常遇到的问题,在这里和大家分享一下,希望本文对大家有用. 关于主线同SVN分支合并的概念及如何使用的误区此问题是在netbuddy的问题上研究而成,走出误区的过程中得到了pcplayer指点迷津.   一.我的合并需求 在主线的第54个版本上作了分支,在接下来的日子里,主线和分支同时都有修改,此时需要将分支上的改动合并到主线上,合并前主线和分支都已经提交,截至到合并前,主线的修改达到了版本号66,而分支的修

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

行结束符和空白选项 在项目的生命周期中,有时可能会将行结束符由 CRLF 改为 LF,或者修改一段代码的缩进.不幸的是这样将会使大量的代码行被标记为已修改,尽管代码本身并没有被修改.这里列出的选项将会在比较差异 和应用补丁时帮助你应对这些修改.你将会在合并和追溯对话框中看到这些设置,它们同样也出现在TortoiseMerge 的设置中. 忽略行结束符 排除仅行结束符的差异. 比较空白 将所有缩进和行内空白差异视为增加/删除的行. 忽略空白修改 排除那些完全是针对空白数量或类型的修改,例如,修改缩