学习笔记 SVN分支与合并问题详解

开发 项目管理
SVN分支与合并问题你是否了解,这里就向大家简单介绍一下,欢迎大家能和我一起学习SVN分支与合并方面的知识,希望通过本文的学习大家对SVN分支与合并有深刻的理解。

本节作一下SVN分支与合并透析,主要有创建SVN分支的意义,原理和方法,以及分支主干合并之间的转换等内容,希望通过本文的介绍大家能够掌握SVN分支与合并方面的知识。

SVN分支
1.创建分支的意义
创建分支的意义,比如我们在一个基础平台上进行开发,每个技术小组负责一个子项目,而基础平台也是有可能会继续更改的,这个时候,如果不创建分支,子项目之间会相互影响,影响***的就是后期的测试和版本发布,子项目A已经结束,但测试却受到正在进行的子项目B的影响,测试通不过,就别说版本发布了。所以,我们需要从目前的项目(主干trunk)中创建分支(branch),隔离子项目间的相互影响。知道了创建分支的意义,那么如何创建呢,下面请看SVN分支与合并介绍中创建的原理。
2.svn创建分支原理
在svn中,创建分支,实际上就是一个版本拷贝(对应copyto...注意:绝不是简单在客户端上copy一个目录,而是svn仓库中copy,文件版本号会增加。),两边做任何修改发生的版本变化,是一套机制。举例:目前主干版本是100,分支版本是101,主干中增加一个文件,版本为102,分支中再增加一个文件,版本就为103了。两边的版本号是一套,不会重复。
3.svn创建分支的方法
TortoiseSVN:右键点击工程目录->TortoiseSVN->Branch/tag..菜单,FromWCatUrl自动为工程svnurl,比如https://localhost:8443/svn/fbysss/prj1,toUrl填写https://localhost:8443/svn/fbysss/prj1/branches/branch1。点OK按钮,分支就创建好了。
Subclipse:Team->Branch/tag..,跟上面类似.
SVN命令模式:svncopytrunk_pathbranch_path-m'描述'
举例:svnhttps://localhost:8443/svn/fbysss/prj1https://localhost:8443/svn/fbysss/prj1/branches/branch1-m"***个分支"。
4.SVN分支与合并
1)从分支合并到主干
分支开发结束之后,往往需要合并回主干去测试、发布,但分支和主干可能有很多冲突的地方,在合并时经常需要手工解决。
被操作对象:主干
From:主干的打出分支时的版本
To:分支的Head版本(***版本)
怎么理解这个From和To呢?似乎跟我们的想当然不太一样:因为我们理解,把分支合并到主干,肯定是From分支,To主干。怎么搞反了呢?
实际上,Svn认为,我们要合并的,是从主干的某个版本开始,到分支的某个版本结束。两边的版本号实际上是一套系统,不会有重复。我们从TortoiseSVNHelp中也能找到证据:
 

  1. viewplaincopytoclipboardprint?  
  2. Ifyouareusingthismethodtomergeafeaturebranchbacktotrunk,  
  3. youneedto........  
  4. IntheFrom:fieldenterthefullfolderURLofthetrunk.  
  5. Thismaysoundwrong,  
  6. butrememberthatthetrunkisthestartpointtowhichyouwanttoaddthebranchchanges.Youmayalsoclick...tobrowsetherepository.  
  7. IntheTo:fieldenterthefullfolderURLofthefeaturebranch.  
  8. Ifyouareusingthismethodtomergeafeaturebranchbacktotrunk,  
  9. youneedto........  
  10. IntheFrom:fieldenterthefullfolderURLofthetrunk.  
  11. Thismaysoundwrong,butrememberthatthetrunkisthestartpointtowhichyouwanttoaddthebranchchanges.  
  12. Youmayalsoclick...tobrowsetherepository.  
  13. IntheTo:fieldenterthefullfolderURLofthefeaturebranch.  

2)从主干合并到分支
试想这样的情况:一个项目里面,要独立出来一个子项目,需要单独发布版本,用到了基础框架代码,而基础框架在主干中不断修改完善,这就需要从主干合并到分支。
被操作对象:分支
From:分支的***个版本(最旧版本)
To:主干的Head版本(***版本)
相当于从分支的***个版本开始一直到主干***一个版本结束合并之后,替换分支。实际上,分支和主干,在管理上是有较大的意义不同,但对于svn系统技术层面来讲,二者是平等的,可互为主干和分支。本节关于SVN分支与合并问题介绍完毕,请关注本节其他相关报道。


 

【编辑推荐】

  1. SVN分支与合并之专家课堂
  2. 深入讲解SVN分支与合并的关系
  3. SVN分支与合并实例剖析
  4. 专家在线指导如何搭建SVN服务
  5. SVN分支维护专家在线 

 

 

责任编辑:佚名
相关推荐

2010-06-01 12:36:04

SVN分支与合并

2010-06-01 12:49:04

SVN分支模式

2010-05-20 15:12:02

SVN分支与合并

2010-06-01 19:47:29

SVN分支与合并

2010-06-01 12:19:27

SVN分支与合并

2010-05-20 15:32:38

SVN分支与合并

2010-05-28 17:00:24

SVN分支与合并

2010-05-28 15:47:29

SVN分支

2010-05-28 15:57:20

SVN分支

2010-05-20 15:50:05

SVN分支

2010-06-02 09:06:26

SVN学习

2010-06-01 19:55:30

SVN使用

2010-06-01 10:37:15

SVN合并

2010-06-01 19:33:53

SVN与CVS优缺点

2010-06-01 11:22:30

SVN合并跟踪

2010-05-27 13:08:46

SVN简易使用手册

2010-05-27 09:41:05

SVN冲突

2010-06-01 11:13:40

Svn分支合并

2010-06-02 09:45:02

SVN学习笔记

2010-05-24 09:11:06

SVN版本库
点赞
收藏

51CTO技术栈公众号