多分支开发策略

标签: 分支 开发 策略 | 发表时间:2014-01-26 07:32 | 作者:crylearner
出处:http://blog.csdn.net

分支策略

                                                                                                                                    author:crylearner

 

日常开发中几个常见过程

ü  功能开发 (开发人员)

ü  bug修复,包括测试版本的bugfix和生产版本的hotfix (开发人员)

ü  版本集成,包括发布测试版本和生产版本 (项目经理)

ü  版本测试 (测试人员)

 

分支策略的核心任务

ü  保证bug修复与功能开发并行,不会出现堵塞情形。

ü  保证可以快速版本集成。

实现方式就是多分支 + 里程碑标记

 

多分支策略

1.       develop开发分支

开发人员日常开发时使用的分支,它代表着最新的开发状态。大多数的时候,最新节点的版本是未经检验的、不可靠的。

为了使develop的开发状态可控,根据代码提交频度,定期做一次集成+基本用例测试。如果可以引入单元测试,就更好了。

2.       feature特性开发分支

特性开发分支作为对开发分支的补充,保证不会因为特性开发的不完整,导致develop开发分支的不稳定。

对大型功能的开发,或者试验性的开发,可以单独在本地检出feature分支进行开发。只要定期自己将develop分支的内容同步过来即可。

3.       master 主干分支

代表着稳定状态的分支。任何时候,master分支的最新节点应该都是随时可发布的。

当完成一个里程碑时(完成版本发布、完成hotfix),应该在主干分支上打上tag,同时将变更内容同步到开发分支。

4.       release 版本发布分支

实际一般主要用于发布测试版本,并提供开发人员在此分支上完成测试版本的bug修复。(如果是发布生产版本,一般直接取用某个测试版本即可)

ü  测试版本应该从开发版本的当前最新节点检出。为了尽可能保证该节点的稳定性,项目经理应该提前通知开发人员做好代码提交。

ü  修复bug时,可采用敏捷方式。通过每日集成+回归测试(只测试最新标记为修复的bug),完成快速迭代。

ü  bug修复完成后,由项目经理将分支合入主干,并打上tag,同时将主干内容同步到开发分支develop。 bug修复完成后,release分支也不再有存在价值,可以由项目经理删除。

5.       hotfix  生产版本bug修复分支

修复时,从主干分支上找到对应该生产版本的tag。基于此tag检出hotfix分支,完成修复后合入到主干master,同时打上tag,删除hotfix分支。(同时也别忘了将主干分支往开发分支做一次正向同步)

 

 

后记:如果是基于git的版本控制,只有develop分支是必需长期存在的,其他分支事实上都是可以临时性质的。也就是表面上的单分支,也是我以前公司使用的策略(不过也不完全一致,因为完全的多分支管理也确实比较复杂)。

 

 

参考文档:主要是基于第一份参考文档。

1. 《一个成功的Git分支策略模型》

2. 《有策略的进行分支》

3. 《敏捷开发模式中的分支管理模式》

4. 《敏捷开发模式中的分支管理模式实战与补遗》

作者:crylearner 发表于2014-1-25 23:32:33 原文链接
阅读:150 评论:0 查看评论

相关 [分支 开发 策略] 推荐:

多分支开发策略

- - CSDN博客研发管理推荐文章
ü  功能开发 (开发人员). ü  bug修复,包括测试版本的bugfix和生产版本的hotfix (开发人员). ü  版本集成,包括发布测试版本和生产版本 (项目经理). ü  版本测试 (测试人员). ü  保证bug修复与功能开发并行,不会出现堵塞情形. ü  保证可以快速版本集成. 实现方式就是多分支 + 里程碑标记.

Git分支管理策略

- - 阮一峰的网络日志
如果你严肃对待编程,就必定会使用" 版本管理系统"(Version Control System). 眼下最流行的"版本管理系统",非 Git莫属. 相比同类软件,Git有很多优点. 其中很显著的一点,就是版本的分支(branch)和合并(merge)十分方便. 有些传统的版本管理软件,分支操作实际上会生成一份现有代码的物理拷贝,而Git只生成一个指向当前版本(又称"快照")的指针,因此非常快捷易用.

策略版《权力游戏》发布,角色扮演版开发中

- han - Solidot
由《冰与火之歌》首部曲改编的即时战略游戏《权力游戏:创世纪》已经发布(官方预告片),游戏开发商是Cyanide,发行商是Focus Home Interactive. Cyanide证实它正在开发游戏机和PC版的《权力游戏》RPG,风格类似《质量效应》,在两个不同角色之间不断切换去讲述书中不同家族权力斗争的故事,但玩家将无法亲自操作原作中的任何角色.

开发者谈对Android平台分裂性看法及应对策略

- - 酷勤网-挖经验 [expanded by feedex.net]
如果询问手机游戏开发者认为Android平台存在麻烦的原因或者为何他们选择完全放弃这个平台,很可能有些人会立即将矛头指向该平台的分裂问题. Android开发者必须针对各种不同的设备来创建游戏,考虑不同的操作系统版本、屏幕大小、处理器速度和众多其他因素. Staircase 3近期分析了访问其《OpenSignalMaps》应用的Android设备数据,最终发现市场上存在近4000种不同的设备.

安卓开发笔记——关于照片墙的实现(完美缓存策略LruCache+DiskLruCache) - Balla_兔子

- - 博客园_首页
这几天一直研究在安卓开发中图片应该如何处理,在网上翻了好多资料,这里做点小总结,如果朋友们有更好的解决方案,可以留言一起交流下. 在我们开发程序中要在界面上加载一张图片是件非常容易的事情,但如果是加载一堆图片呢. 比如ListView,GridView这类的控件,随着屏幕滑动,图片加载也会越来越多,应用程序所可以使用的内存毕竟是有限的,如果一味的去加载图片,很容易导致OOM(Out Of Memory)内存溢出,导致程序崩溃.

CDN缓存策略

- - 开心平淡对待每一天。热爱生活
   CDN这个东西,当然是个好东西. 所以看到有FAQ就理所当然的复制下来,其实,最近我突然想到一件事情,中国的地区域名还有一个很有意思的地域域名,那就是js.cn,所以,我悄悄的申请了两个域名,cache.js.cn和cdn.js.cn,就是想用来做这种CDN转发,当然,只是简单的. 我最初的想法是(有一小部分),如果我的服务器里有N多人装了DZ论坛,那么这些JS和CSS其实都是共用的.

MySQL安全策略

- - OurMySQL
   MySQL被运用于越来越多的业务中,在关键业务中对数据安全性的要求也更高,如何保证MySQL的数据安全.    MySQL被运用于越来越多的业务中,在关键业务中对数据安全性的要求也更高,如何保证MySQL的数据安全.    数据安全如果只靠MySQL应用层面显然是不够的,是需要在多个层面来保护的,包括网络、系统、逻辑应用层、数据库层等.

Cassandra 1.1的缓存策略

- - NoSQLFan
从0.5和0.6版本开始, Cassandra就提供了主键 缓存和行缓存. 在1.1 版本中,Cassandra的核心开发团队重新对缓存策略进行了设计和实现,以提供配置更简单但同时又更高效的缓存效果. 为什么要将缓存集成到数据库内部. 实际上,缓存既可以储存到数据库内部,也可以是外部的独立缓存层.

Java异常处理策略

- - 研发管理 - ITeye博客
任务与预先设定的规则不相符的情况都可以称之为异常. 但凡业务逻辑操作,都会划定一些边界或规则,但是往往事与愿违,总会有调皮鬼来挑战系统的健壮性. 用户并不都是知道潜规则的,比如用户的银行账户中只有100块钱,但是用户不查询就直接取200块. 码农有时候太过自信了,比如你在编写文件下载功能时忽略了文件有可能不存在这个分支流程.