多分支开发策略

标签: 分支 开发 策略 | 发表时间: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只生成一个指向当前版本(又称"快照")的指针,因此非常快捷易用.

Git_014:最佳敏捷分支策略

- - 心有猛虎,细嗅蔷薇
目前业界有三种分支策略:Git Flow,Github Flow,Gitlab Flow,它们都是采用"功能驱动式开发"(Feature-driven development,FDD). 所谓 FDD,指的是需求是开发的起点,先有需求再有功能分支(feature branch)或者补丁分支(bugfix 或 hotfix branch).

Git 分支管理策略与工作流程

- - IT瘾-dev
Git 是目前世界上最先进的分布式版本控制系统. 它使我们更方便的跟踪,管理和组织代码. 也帮助了我们更好的与其他开发者进行协作开发. 协作开发必须有一个规范来约束各个贡献者的行为. 这个规范就是 Git 工作流程(Git Workflow),也为我们规范各个分支管理策略等行为. Git 工作流程是有关如何使用 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应用层面显然是不够的,是需要在多个层面来保护的,包括网络、系统、逻辑应用层、数据库层等.