svn分支管理的使用与经验
来源:互联网 发布:淘宝代充平台 编辑:程序博客网 时间:2024/05/16 00:50
最近项目用上了svn分支管理,因为项目太过庞杂,版本迭代也过于频繁,致使多个版本的代码交杂在一起,难以维护,无法保证其中某个版本的稳定性。当然,我们也用过很土的办法,代码复制一份出来,但是,这个副本也需要加上新开发的功能。
所以,我们决定使用svn分支管理。当然,这有代价,svn版本管理对二进制文件不友好,可能文件分支合并时二进制文件会难以处理。(这里说的二进制文件,泛指所有非文本文件,比如说美术资源,策划文档)
svn分支简述
使用分支最主要的目的是,多个分支可以并行,相互不干扰,而且任何时候都可以合并。其次,容易保证主干的稳定性。
没有分支的时候,你的svn可能是这样的:
就一份代码存在主干(trunk),当然也不会有主干这个说法。开发完1.0,继续开发2.0,版本一个一个迭代。
有了分支后,你的svn可能就是这样的了:
主干用来存放稳定的代码,每个版本都会开一个分支,等版本完成后再合并到主干。版本一个一个迭代,但可以并行开发。
svn分支管理
接下来,简单讲解下 如何使用svn做分支管理。
第一步,建立主干分支目录结构
第二步,创建分支
在主干目录 trunk 右键,在svn菜单选择 Branch/tag...
步骤①是分支地址,这里直接以 /branches/1
步骤②是取trunk版本,HEAD revision表示最新版本,其他可通过 show log选择
执行 OK 后,到 branches 目录 svn update 就可以看到最新的分支了。
第三步,合并分支到主干
分支就是开发目录了,现在分支提交一个文件做测试。
然后,合并这个文件分支到主干。
现在到主干目录,右键svn菜单选 Merge...
这个是将分支或主干的修改合并到当前工作目录,继续如下。
接下来点完成,如果没冲突的话,分支文件就合到主干了。
但这里还要一个操作,就是在主干提交分支合过来的文件。
题外话,之所以要有这一步,除了对分支内容进一步修改,还可以同时合并多个分支。选择权交给用户。
另外,主干内容合到分支,也是使用 Merge 命令。
svn分支应用
根据项目的不同,实际上的分支架构也会不同。以我们项目为例,我们是做游戏的,项目过于庞杂,版本迭代非常频繁。在版本1.1还没完成时,我们可能就要开发2.0版本,这样,版本1.1和版本2.0就要并行开发。而且,我们对稳定性有非常高的要求。
为此,我们设计了这样的svn架构。
测试分支
为了保证主干稳定,我们加了测试分支(如 rel_1.1的测试分支为 rel1.1_test )。测试分支1.1是在分支1.1开发结束后开的,等待测试修复bug完成后,就会把测试分支1.1合入主干及分支1.1。合并完成后,这个测试分支将会关闭。
多分支并行
因为项目需求较多,版本迭代繁杂,所以在版本1.1还没结束时,就开了版本2.0的分支。当分支2.0需要测试合并到主干时,就会从主干合并最新的文件到2.0测试分支,测试通过后,再合并到主干。
分支合并的时机
对我们而言,不同分支的最大区别是功能上线的时间点。我们根据上线周期划分功能,拆分到不同分支。因为开发需求多,迭代过于频繁,所以靠后的分支对比之前的分支通常只是多了某些新功能。这样,分支的出现,避免了未开发完成的功能影响了已开发完的功能,导致当前版本的不稳定。所以,合并分支的时机就是这个分支的功能要不要上线。
这样,主干永远是稳定的,也只有经过测试的内容,才会合入主干。同时,多个版本也可以并行。
参考:http://blog.csdn.NET/mycwq/article/details/51793847
- svn分支管理的使用与经验
- svn分支管理的使用与经验
- svn分支管理的使用与经验
- svn 分支与合并的使用
- SVN分支的使用
- svn分支的使用
- svn分支的使用
- 启用SVN的分支管理
- 启用SVN的分支管理
- svn主干与分支使用
- android studio中svn的使用(关联svn、svn提交代码,分支管理等)
- svn项目分支与合并管理
- SVN 的 分支 与 合并
- svn的分支与合并
- svn的分支与合并
- SVN的分支与合并
- SVN分支和主流代码的管理
- SVN 分支管理项目
- Java中的线程创建基础
- FFmpeg视频录制压缩处理走过的坑
- me
- SQLite在多线程环境下的应用,threadsafe
- 打架 孤立 堕落 对游戏的看法
- svn分支管理的使用与经验
- Javascript 作用域 闭包 原型和原型链
- SOJ 1035
- 沉浸式状态栏框架-SystemBarTint
- git常用命令以及使用技巧
- html5与安卓native交互,相互调用
- 【算法】牛客网模拟题编程部分3.23日
- UVA
- JAVA多线程之——线程的实现方式