版本管理规范


  •  一、基本定义

  •  (一)、目的

本规范建立的目的是规范软件产品的开发、测试、发布流程, 提高开发人员的代码开发质量,通过加强对编码过程的监控,细化工作流程,达到提升软件开发效率,并逐步推进敏捷开发过程,实现代码管理的自动化。范围

  •  (二)、相关内容

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命名规则如下:

  •  五、权限控制管理

为保障文档的安全性,一致性,以及防止意外修改,必须对不同的文档设置不同的访问权限。

文档权限类别:无任何权限,只读权限,所有权限。

文档类别:设计文档,源码,发行文档。

用户类别:开发人员、测试人员、项目经理、配置管理员等。

为了控制不同的使用权限,根据要求在服务器上分别建立不同的用户,针对不同的配置项所在目录分配不同的权限。

  •  六、版本工具的使用

待完善。