SVN分支与合并实例剖析

开发 项目管理
本文通过实例讲解SVN分支与合并的问题,因为SVN分支与合并还是比较常用的,于是我研究了一下,在这里拿出来和大家分享一下,希望对大家有用。

本节讲解SVN分支与合并,为了讲解的方便,我们通过一个例子来看一下,SVN分支与合并尽管svn没有作强制要求,但是一般svn版本库目录建议创建trunk、branches和tags三个目录。

在实际操作时,trunk主干版本要时刻保持干净,即随时可以基于这个版本进行修改并将应用部署上线。branches是分支目录,存放并行开发的项目代码,因为分支是主干的廉价拷贝(相当只是提交了一次主干版本,增加了一个版本号,并没有取出版本库作镜像拷贝),所以你可以放心建立很多分支版本。不过Subversion不支持跨版本库的拷贝,当使用svncopy时你只能在同一个版本库内操作。tags目录存放trunk某个的快照,比如说release-1.0即trunk处于1.0版本时的快照。使用svn来作团队的代码管理,那么分支和合并将是非常常用的操作。下面是一个简单的示例。

1.创建分支。

 SVN分支与合并***步创建分支。这里假设你要负责一个叫theme的项目,分支号1.7.2。
1.#这里的localhost是svn服务器地址
2.svncopy-m"1.7.2-theme"svn://localhost/www/trunksvn://localhost/www/branches/branch1.7.2-theme
3.svncosvn://localhost/www/branches/branch1.7.2-theme 

2.从trunk中merge到分支。

SVN分支与合并第二步:从trunk中merge到分支。忙了一个星期终于开发完了,但是开发期间trunk版本有过改动,部署上线前你需要合并trunk的代码。
1.#branch1.7.2-theme是分支目录,注意不可以进到分支子目录
2.cdbranch1.7.2-theme
3.#前面的12972是开分支之前trunk的版本号,后面的12991是merge时trunk的版本号
4.svnmerge-r12972:12991svn://localhost/www/trunk
如果有冲突选择p(postpone),merge完了之后使用svnst|grep^C查看冲突文件,然后比对修改冲突文件。解决冲突后再checkin,信息写上执行的merge操作。
svnci-m'svnmerge-r12972:12991svn://localhost/www/trunk'

3.从分支merge到trunk。

SVN分支与合并第三步:从分支merge到trunk。上线测试完毕,你很幸运,一切都如预期正常,这时就要将分支回归trunk,将trunk更新到***。
1.#先从trunkcheckout一份新鲜的代码,然后cd到该版本目录下
2.svncosvn://localhost/www/trunk
3.cdtrunk
4.#12973是分支开始的版本号,13006是分支结束的版本号
5.svnmerge-r12973:13006svn://localhost/www/branches/branch1.7.2-theme
如步骤2一样解决冲突,解决冲突后再checkin,信息写上执行的merge操作。
1.svnci-m"svnmerge-r12973:13006svn://localhost/www/branches/branch1.7.2-theme"。SVN分支与合并讲解完毕。
 

 【编辑推荐】

  1. Linux SVN安装启动访问模式
  2. 技术指导:TortoiseSVN在Windows客户端如何使用
  3. svn命令在linux下的使用
  4. 八大特性对比显示SVN与CVS的优缺点
  5. 搭建功能强大Linux SVN控制系统
责任编辑:佚名
相关推荐

2010-06-01 12:19:27

SVN分支与合并

2010-06-01 11:13:40

Svn分支合并

2010-05-28 15:47:29

SVN分支

2010-05-28 17:00:24

SVN分支与合并

2010-05-20 15:50:05

SVN分支

2010-05-20 15:12:02

SVN分支与合并

2010-05-28 17:15:17

SVN分支与合并

2010-06-01 19:47:29

SVN分支与合并

2010-06-01 12:36:04

SVN分支与合并

2010-05-28 15:57:20

SVN分支

2010-06-01 11:22:30

SVN合并跟踪

2010-05-19 15:25:47

Apache+SVN权

2010-05-20 16:01:36

SVN分支维护

2010-05-27 10:23:01

SVN文档

2010-05-27 12:58:07

SVN升级

2010-06-01 10:37:15

SVN合并

2010-05-28 17:30:58

SVN分支

2011-03-30 10:50:55

GitLinux 版本控制

2010-05-26 19:36:34

SVN目录结构

2010-06-01 12:49:04

SVN分支模式
点赞
收藏

51CTO技术栈公众号