代码管理实践
代码仓库均采用subversion来管理,
-
代码目录的创建,
一般创建三个目录分别为
trunk(主干),
tags(标签/标记),只存储快照。
branches(分支)。
tags和branches下一般为根据需要从trunk目录拷贝过来的。
-
tags(基线)的创建要求。
-
代码在一种平台下通过编译(必须)
-
代码编译出来的版本通过一定的冒烟测试。
-
在项目要求的平台都可以编译通过。
-
一般有一个安装包给测试时,就需要在tags下建立对应代码的标签。
-
tags下的代码一般不可以修改。
-
两种代码管理模式介绍:
-
始终分支系统(OpenOffice社区采用管理方式)
典型特征:项目较大,代码较多,编译时间较长,参与人员比较多时。
-
每个用户对每项 编码任务的创建或操作都是在私有分支(cws)中进行的。
-
编码完成后,原编码者、同级或经理将对所有私有分支的更改进行审查并将它由合并到 /trunk 中。
-
里程碑(基线)的创建
集成人员集成将开发人员提交的功能集成到主干上,编译通过后,提交的主干上,集成了一定的功能后,创建一个里程碑版本,一般建议按周创建里程碑版本。并在tags下创建相应的代码快照,并将安装包传至指定位置。
-
开发人员基于里程碑版本开发。
开发人员一般基于最新的里程碑版本创建分支,并在分支上工作,并在自己的分支上提交,在提交到svn之前需要编译通过。开发人员需要根据自己开发情况来同步到主干的里程碑代码。如果需要集成到主干上,需要同步到最近的里程碑。
-
测试人员.
测试人员对开发人员的代码进行测试,达到一定的测试标准后,测试通过,然后交由集成人员来集成。
-
-
按需分支系统(Subversion社区采用管理方式)
适用方式代码较少,或者参与开发的人员较少
-
开发人员可以直接在主干上提交。开发负责人来编译版本给测试。
-
开发者把所有的新特性提交到主干。 每日的修改提交到/trunk:新特性,bug修正和其他。新近的开发人员不能提交代码,交由有经验的开发人员验证后来提交到主干上。
-
当开发小组认为软件已经做好基本发布的准备(如,版本1.0)然后/trunk会被拷贝到/branches/1.0。这个主干被拷贝到“发布”分支。然后在发布分支上继续修改bug.
-
如果bug修正经测试达到一定的要求认为可以完成时,可以拷贝到/tags/1.0.0,这个标签被建立并发布给相关人员。
-
-
向subversion库提交提交代码要求
-
针对每次提交到主干上的代码均需要编译通过
-
代码每次提交到svn上均需要添加注释。
-
每个人都用自己账号来提交代码。
-
参考资料
http://www.subversion.org.cn/svnbook/nightly/
http://wiki.services.openoffice.org/wiki/OOo_and_Subversion
http://www.collab.net/scdocs/SVNTips.html
http://bjbook.net/bk/scmbest/