博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SVN分支和合并的简单例子
阅读量:6294 次
发布时间:2019-06-22

本文共 1378 字,大约阅读时间需要 4 分钟。

尽管svn没有作强制要求,但是一般svn版本库目录建议创建trunk、branches和tags 三个目录。 在实际操作时,trunk主干版本要时刻保持干净,即随时可以基于这个版本进行修改并将应用部署上线。branches是分支目录,存放并行开发的项目代 码,因为分支是主干的廉价拷贝(相当只是提交了一次主干版本,增加了一个版本号,并没有取出版本库作镜像拷贝),所以你可以放心建立很多分支版本。不过 Subversion不支持跨版本库的拷贝,当使用svn copy时你只能在同一个版本库内操作。tags目录存放trunk某个的快照,比如说release-1.0即trunk处于1.0版本时的快照。

使用svn来作团队的代码管理,那么分支和合并将是非常常用的操作。下面是一个简单的示例。

1. 创建分支。这里假设你要负责一个叫theme的项目,分支号1.7.2。

1
2
3
#这里的localhost是svn服务器地址
svn copy -m
"1.7.2 - theme"
svn:
//localhost/www/trunk
svn:
//localhost/www/branches/branch1
.7.2-theme
svn co svn:
//localhost/www/branches/branch1
.7.2-theme

2. 从trunk中merge到分支。忙了一个星期终于开发完了,但是开发期间trunk版本有过改动,部署上线前你需要合并trunk的代码。

1
2
3
4
#branch1.7.2-theme是分支目录,注意不可以进到分支子目录
cd
branch1.7.2-theme
#前面的12972是开分支之前trunk的版本号,后面的12991是merge时trunk的版本号
svn merge -r 12972:12991 svn:
//localhost/www/trunk

如果有冲突选择p(postpone),merge完了之后使用svn st|grep ^C查看冲突文件,然后比对修改冲突文件。解决冲突后再check in ,信息写上执行的merge操作。

1
svn ci -m
'svn merge -r 12972:12991 svn://localhost/www/trunk'

3. 从分支merge到trunk。上线测试完毕,你很幸运,一切都如预期正常,这时就要将分支回归trunk,将trunk更新到最新。

1
2
3
4
5
#先从trunk checkout一份新鲜的代码,然后cd到该版本目录下
svn co svn:
//localhost/www/trunk
cd
trunk
#12973是分支开始的版本号,13006是分支结束的版本号
svn merge -r 12973:13006 svn:
//localhost/www/branches/branch1
.7.2-theme

如步骤2一样解决冲突,解决冲突后再check in,信息写上执行的merge操作。

1
svn ci -m
"svn merge -r 12973:13006 svn://localhost/www/branches/branch1.7.2-theme"

相关的手册可以参阅svn文档,电子版可以。

转载地址:http://rbvta.baihongyu.com/

你可能感兴趣的文章
02@在类的头文件中尽量少引入其他头文件
查看>>
JAVA IO BIO NIO AIO
查看>>
input checkbox 复选框大小修改
查看>>
BOOT.INI文件参数
查看>>
vmstat详解
查看>>
新年第一镖
查看>>
unbtu使用笔记
查看>>
OEA 中 WPF 树型表格虚拟化设计方案
查看>>
Android程序开发初级教程(一) 开始 Hello Android
查看>>
使用Gradle打RPM包
查看>>
“我意识到”的意义
查看>>
淘宝天猫上新辅助工具-新品填表
查看>>
再学 GDI+[43]: 文本输出 - 获取已安装的字体列表
查看>>
nginx反向代理
查看>>
操作系统真实的虚拟内存是什么样的(一)
查看>>
hadoop、hbase、zookeeper集群搭建
查看>>
python中一切皆对象------类的基础(五)
查看>>
modprobe
查看>>
android中用ExpandableListView实现三级扩展列表
查看>>
%Error opening tftp://255.255.255.255/cisconet.cfg
查看>>