SVN中的Branches分支以及Merge 应用举例
come from: http://www.360doc.com/content/12/0816/19/1317564_230547958.shtml
创建Branch分支或者Tag标签
当按照推荐的结构创建的版本库,创建分支以及Tag是很容易的。
在我的SVN服务器上创建了一个版本库Test,结构如下:
在我的本地签出checkout,添加一个文件test.txt,然后提交。
加入这个时候我们需要发布一个版本的文件,同时有可能其他人会修改,
但我们不能影响当前的文件,只能在其修改好后再合并,这种情况下我们创建一个分支。
这个时候我们可以发现本地的trunk文件夹的SVN属性的URL已经被Switch到创建的版本的地址了:
执行SVN更新命令,可以查看到,本地branches文件夹下新增文件夹v1.0以及文件夹里面的文件v1.0。
修改分支和使用合并Merge功能
修改branches/v1.0下面的文件test.txt,添加一行modified in branch v1.0.然后签入到SVN服务器中:
由于刚才我们已经将trunk的SVN版本库URL转换到对应的版本,所以这个时候更新trunk文件夹可以看到更新的test.txt文件。
为了作测试,我们将trunk文件夹switch至对应的trunk地址:
当switch成功后,我们可以看到trunk下test.txt文件的内容并没有任何的更改,这正体现了刚才我们所说的在分支中的修改不会影响到主干。
下面修改trunk文件夹下的test.txt,添加一行modified in trunk.然后签入到SVN服务器中:
最好我们将实现一个重要的功能,就是Merge合并功能,将分支合并到主干中,这也是在团队软件开发中我们经常要使用的功能。
在TortoiseSVN的Revision Graph中可以查看trunk的版本变化图,如下:
从上图可以得出,在版本10的时候我们创建了分支版本/branches/v1.0,且SVN版本为11,在版本11基础上我们对分支进行了修改于是有了 版本12,我们再对trunk下的文件进行修改于是有了版本13,整个SVN目前的版本就为13,这与我们刚才做的修改是相吻合的。
下面将分支v1.0合并到主干中。
按照我们目前的情况,选择第二种:
选择v1.0:
然后,如下:
在我们的这次合并中肯定会产生问题,因为我们对test.txt文件进行了两次修改,因而会产生冲突Conflict,但这在实践中是不应出现这种情况 的,因为建立的分支目的就是修改那些在主干中不会被修改的文件,以便修改完成后合并到主干中。不过没关系,我们这里仅是演示而已,所以只需处理下冲突,手 动的将其合并(这在实际中不应该这样否则失去了分支的用途了):
这个时候可以看到我们的test.txt文件已经按照我刚才手动处理冲突实现了:
然后将trunk签入到版本库中:
如果我们再去查看branches\v1.0下的test.txt文件它的内容依然是最初在trunk中编辑的内容。
另外再次强调一点:在实际操作中我们不会对一个分支文件在主干中再次进行修改,否则会造成一些冲突,这样就失去了分支的便利性了;Tag的创建与分支是类s似的,只不过Tag往往仅用于标识特定版本,而不会用于bug修复,增加新特性等情形。
相关文章
- 贪心法(三):POJ题库中的贪心法应用例题
- HTML5 格式化方式以及应用
- 【MySQL高级】应用优化及Mysql中查询缓存优化以及Mysql内存管理及优化
- 差分放大电路单端输出和双端输出区别以及应用(转载)
- 【GNN】图神经网络的简单应用以及MATLAB仿真
- 渗透测试-文件包含漏洞以及php伪协议的应用
- 20年资深Oracle数据库专家:国内应用级DBA的缺失
- bind函数作用、应用场景以及模拟实现
- iOS 9应用开发教程之定制应用程序图标以及真机测试
- AppleWatch开发教程之Watch应用对象新增内容介绍以及编写运行代码
- 【快应用】list案例分享
- 【Java基础】ThreadLocal的底层原理以及应用场景
- 深入理解Android 自定义attr Style styleable以及其应用
- iOS开发之让你的应用“动”起来
- php接口和多态的概念以及简单应用
- 2022.43 全真互联应用
- Qt编写地图综合应用21-路径规划
- Curator典型应用场景之-分布式锁
- JavaScript深入理解闭包及应用
- 《Storm企业级应用:实战、运维和调优》——1.3 Storm核心组件
- 《Storm企业级应用:实战、运维和调优》——导读
- jboss eap6.1(4)(部署应用)
- ThreadLocal应用场景以及源码分析
- 区块链技术在智能时代有着广泛的应用前景
- 2017年大数据发展的十大趋势以及在各行业的应用潜力
- 【树与二叉树】堆的时间复杂度详解以及堆的应用—堆排序、TOP - K问题
- 信号与系统——傅里叶变换、拉普拉斯变换、Z变换联系与区别以及工程应用(二)
- 【Android】应用安全——反编译
- DirectSound的应用
- 应用SAP PI实现SAP BW数据仓库对于第三方系统数据完美集成以及DELTA加载的分析
- 一步一步从安装系统开始搭建openstack、构建私有云服务和计算、通过相关组件管理虚拟机和容器、以及通过 api 进行自定义应用开发
- 数字图像处理 - 扫描枪里的应用
- 苹果借视频应用Clips进一步深入Facebook的消息地盘
- web应用架构演变