魔方网表 让信息化更简单

 找回密码
 注册
查看: 7693|回复: 2

配置管理-关于分支与合并的一些思考

[复制链接]
laiye 发表于 2008-7-25 16:01:00 | 显示全部楼层 |阅读模式
在一个大型的项目中经常会有多个子项目需要并行开发,但又不能同时提交上线情况。如果这些项目互相之间没有交叉,用SVN等版本管理工具可以很好的控制项目,大家之间的测试和上线不会产生任何的冲突。当然项目间相互独立是最好不过了,但有时候有交叉通常又是不可避免的,针对交叉,如何创建分支,如何重构是一个比较值得关心的问题。 长期的项目,持续的需求,后到的需求可能需要先发布,为控制变更,对这些交叉的地方建立分支(Branch),然后把分支最后都合并到主干上并发布。是一个很有效的管理方法。分支(Branch)管理基本示意 问题: 问题一:上图其实只是一个很简单的分支示意,其实很有可能同时存在多个分支。难点就是出在如何对这写分支进行归并也就是重构。往往就是在前几个分支进行重构以后,其他的分支在进行重构就很难,因为代码的差异简直是太大了,项目很可能因此被拖垮。 问题二:如果建立多个分支,分支间的测试会很麻烦,除非大家都有一个本地的模拟环境。如果大家都在准上线环境上测试,不同的分支间必然会出现互相覆盖的情况,如果覆盖的情况没有好好的解决,开发效率会极大的降低,解决办法可以是建立多个准上线环境,但是也会带来对这些准上线环境维护的成本的提高。 总结 第一:为什么会导致后期重构很难,其实主要的问题是是重构的不及时和不频繁。往往很多个子项目之间的完成时间并不总是一样的,有的时间很短,那么当这个子项目完成后,必须的及时的合并到主分支上,其他子项目也必须及时的经常的针对最新的主分支进行重构,这样就会很大程度上降低后期重够困难的情况。但是要注意如果进行重够,主分支上的代码必须得是干净的,安全的,也就是说得是发布版本的代码。不然别人重构主分支上的代码后,等其开发完毕,上线或交付给客户,很有可能因为主分支还有测试部分的代码而影响项目质量。所以主分支从某种意义上来将应该是相对来说是非常“干净”的代码。 具体的开发方式可以采用建立里程碑的方法来开发 比如说,在开发项目的2.x版本的时候发现1.x有问题,但2.x又不敢用,则从先前标记的里程碑:release_1_0导出一个分支 release_1_0_patch  相关概念  · 集成分支    为了系统集成测试需要,创建集成分支,并对该分支进行了不同子项目的权限控制,各子项目必须将开发成果纳入到该分支,凡是对纳入到该分支的配置项进行的任何变更,都必须首先从该分支获得,变更后再上传到该分支。软件的集成测试工作在这一分支中进行。项目级配置管理员拥有对该集成分支的管理和读写权限,子项目级配置管理员只有对指定的目录有读写权限。  · 主干分支  主干分支对应的是整个软件开发组织的发布分支。各个子项目在现阶段的任务完成后,将可以发布的版本归并到该分支上,由该分支产生发布版本,对每次的发布基线和相关资料,以该分支上的版本为准。该分支的管理工作由项目级配置管理员负责。 · 基线 Baseline 基线是由一组配置项组成,这些配置项构成了一个相对稳定的逻辑实体。基线中的配置是被冻结的,不能在被任何人随意修改。基线通常对应于开发过程中的里程碑,一个产品可以有多个基线,也可以只有一个基线。通常给客户的基线称为“Release”,为内部开发用的则称为“Build”。 参考资料《信息项目管理师教程》柳纯录 刘明亮 清华大学出版社 《网站重构-应用WEB标准进行设计》Jeffrey Zeldman 电子工业出版社 http://www.javaeye.com/post/265188 [url=http://manager.csdn.net/n/20060612/91558.html]http://manager.csdn.net/n/20060612/91558.html[/url]
admin 发表于 2011-3-24 19:52:25 | 显示全部楼层
ding
回复

使用道具 举报

orkal 发表于 2013-4-6 22:50:36 | 显示全部楼层
难得好贴,赞一个,继续努力啊












福州审计报告  www.tianlong518.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|魔方软件 ( 京ICP备08008787号 )

京公网安备 11010702001722号

GMT+8, 2024-3-28 23:02 , Processed in 0.066863 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表