版本管理规范
-
一、基本定义
-
(一)、目的
本规范建立的目的是规范软件产品的开发、测试、发布流程, 提高开发人员的代码开发质量,通过加强对编码过程的监控,细化工作流程,达到提升软件开发效率,并逐步推进敏捷开发过程,实现代码管理的自动化。范围
-
(二)、相关内容
1.版本标识方法
2.软件系统数据的存放
3.文档的修改控制
4.文档的备份制度
-
二、 版本管理工具
-
(一) SVN
SVN是Subversion的简称,是一个开放源代码的版本控制系统。
-
三、版本管理流程
-
(一) 岗位划分
1. 代码管理员(Source Code Manager)
负责管理版本管理系统使用者的权限。根据项目新建请求,创建新开发分支并划分权限。负责监督生产用分支代码的集成/编译/部署
2. 项目开发负责人(Project Leader)
全面负责管理项目所涉及到所有相关资源,包括文档、代码等
审核本项目中所有提交到测试和生产分支上的代码,对其质量和可靠性负有责任。
对项目开发进度负责。负责项目开发分支的管理工作。
3. 项目开发组成员(Project Developer)
承担具体代码开发工作。
负责个人开发分支上代码管理工作。
负责个人开发内容的自测工作。
对提交到项目分支上的代码质量控制,负有主要责任。
4. 测试组人员(Project Tester)
负责项目的全面测试工作,对测试报告的可靠性承担主要责任
-
(二) 版本树划分
1. 生产分支
最新节点应与生产环境中的运行软件保持一致,此分支上的所有节点均满足生产上线要求,并根据实际生产环境代码状态进行演进。完成测试准备上线的项目代码,必须提交到该分支上,进行独立编译生成部署文件。
2. 项目分支
收集开发人员的开发成果,由项目开发负责人统一管理。 此分支的生命周期与项目开发周期一致。项目立项时由代码管理员建立此分支,项目进行中由项目开发负责人管理此分支,所有开发人员的开发成果需要汇总到此分支,项目结束后关闭该分支的提交功能,只允许进行查询。
3. 个人开发分支
由开发组成员自主创建和管理,承担日常开发过程中代码归集,记录详细开发过程。要求每日工作完成必须在该分支上产生节点,每一个功能点均有独立的节点存在。
-
四 、版本发布流程
-
(一) 流程图
1. 文档归档流程
2. 文档变更流程
3. 代码归档流程
4. 代码变更流程
5.配置管理流程
-
(二) 软件版本命名及版本升级
1. 版本升级原则
版本升级应严格纳入版本管理的控制之下。应当谨慎地控制版本的升级,保障高版本的向下兼容性,或提供严格定义的升级方法。
在下面几种情况下,进行版本演化和升级:
a、当产品发生重大修改和改进时,主版本号+1。重大修改和改进包括:
平台迁移,开发工具的迁移,增加新的应用,框架调整。
b、大的bug修复,版式重建,功能增加、减少,+0.1版
c、当产品发生较小的改进或修改,如:小的bug修复,版式微调,错别字改正,颜色调整,+0.0.1版
d、记录版本升级过程。每次版本升级,都要填写版本升级记录表,记录表样例如下:
说明:
版本号: 记录当前发布的版本。
发布日期:该版本批准发布的日期。
修改文件:版本修改记录文件,一般为版本修改日志。
2. 新版本的发布
新版本的发布包括主版本号和次版本号的升级,一般不包括内部版本号的升级。流程如下:
a .根据项目进展情况,或者根据用户需要进行发布准备。
b.将发布所需文件进行打包,放在指定目录中,给目录加上标签Tag,标签中包含将要发布的版本信息。
c.同样对源码文件也要加上与版本信息相关的标签Tag。
标签Tag命名规则如下:
-
五、权限控制管理
为保障文档的安全性,一致性,以及防止意外修改,必须对不同的文档设置不同的访问权限。
文档权限类别:无任何权限,只读权限,所有权限。
文档类别:设计文档,源码,发行文档。
用户类别:开发人员、测试人员、项目经理、配置管理员等。
为了控制不同的使用权限,根据要求在服务器上分别建立不同的用户,针对不同的配置项所在目录分配不同的权限。
-
六、版本工具的使用
待完善。