软件源码版本管理规范
- 格式:doc
- 大小:23.50 KB
- 文档页数:11
软件研发代码版本管理与代码库的使用代码版本管理是软件开发过程中非常重要的一环。
它可以帮助团队协作与合作、提高代码质量、管理代码变动以及追踪Bug修复等方面起到关键作用。
在软件研发过程中,使用代码库是常见的方法之一,本文将介绍代码版本管理的基本概念与原则,并探讨代码库的使用。
一、代码版本管理的基本概念与原则1.1 代码版本管理的定义代码版本管理(Version Control)是指对软件开发过程中的代码进行跟踪、控制和管理的过程。
它可以帮助开发团队管理修改过程中的代码版本,使得多人协同开发时不会产生冲突,并能够方便地进行代码的回滚和恢复。
1.2 代码版本管理的原则1.2.1 协同开发代码版本管理系统能够使多人协同开发变得更加容易。
每个开发者都可以在自己的分支上工作,并可随时与主分支进行合并。
这样做可以避免不同开发者之间的冲突,并能够追踪每个开发者的工作进度。
1.2.2 源代码的可追溯性代码版本管理系统追踪每次代码修改,包括修改的时间、作者、修改内容等信息。
这一特性对于Bug修复、代码回滚以及追溯特定版本的功能非常重要。
通过追溯源代码的修改历史,可以更加高效地解决问题。
1.2.3 代码的备份与恢复代码版本管理系统可以对代码进行备份,以防止代码丢失。
当出现问题时,可以根据需求方便地恢复到之前的某个代码版本或分支。
这样可以减少代码丢失风险,并提高恢复代码的效率。
1.2 代码库的使用代码库(Code Repository)是保存代码版本的地方。
它可以存储所有的源代码、配置文件以及其他相关文档等。
代码库的使用可以帮助开发者更加方便地管理、共享和合作处理代码。
2.1 分布式代码库分布式代码库(Distributed Version Control System,DVCS)是目前广泛使用的代码版本管理方式之一。
它允许开发者在本地维护一个完整的代码库,包括完整的代码历史和分支记录。
常见的分布式代码库工具有Git和Mercurial等。
XXXXXXXX 代码版本管理规范历史版本目录历史版本 (2)1引言 (4)1.1目的 (4)1.2管理工具 (4)2现状概述 (5)3现状分析 (5)3.1现状详述 (5)3.2目标细化 (6)3.3SVN版本管理 (6)3.3.1概述 (6)3.3.2使用对比 (7)4完整的实施方案 (9)4.1开发阶段 (9)4.2预发布测试阶段 (9)1引言1.1目的为了规范和制度化公司的软件版本管理制度,并保障项目开发资料的完整性和安全性,同时明确开发源代码的控制管理流程,特此制定此规范。
1.2管理工具沿用SVN管理工具来进行开发的版本管理,源代码管理和开发资料归档。
2现状概述目前公司研发部门对于代码的版本管理方式较为简单,只是在每次发版后做了基线库存档,导致所有正在开发的需求和项目都在同一个目录里面进行修改,造成每次发版的代码都有可能包含了本次发版以外的内容。
这样会造成如下两点影响:●会有不稳定的因素存在,比如:测试只会对当前需要发版的内容进行测试,但是代码库中同时存在多个版本和项目的代码,对于本次发版无涉及的代码没有进过测试就部署到了服务器上,影响运行的稳定性。
●一旦出现点问题不好定位,比如:出现问题后通常会优先排查发版涉及的内容,但是部分问题是由于其他项目代码引起的。
因此,随着公司和项目规模的壮大,对软件代码版本管理提出了更高的要求。
3现状分析3.1现状详述当前代码版本管理现状如下:1.所有的开发都在一个目录里面做,各种需求、项目、代码、文件混杂在一起。
2.提交测试服务器时,只考虑了编译能通过,而没有考虑功能本身有没有完成。
3.测试出bug以后,会在开发目录进行修改,然后再次提交到测试服务器。
这时提交的代码就可能包含了他人对其他功能/项目的修改,而测试又只会针对此bug再做测试。
这就导致了除了此bug之外的修改可能会没有测试过就直接发布到了服务器上,引起预发布环境不稳定并增加预发布bug数量。
总体来说,当前工作流程是:预发布出bug,研发修改,再提交测试,然后预发布测试通过的代码。
软件源代码存储规范为了确保软件源代码的安全和可持续性开发,软件开发人员必须遵守软件源代码存储规范。
本文将详细介绍软件源代码存储规范的重要性以及实施规范的最佳实践方法。
一、概述软件源代码存储规范是指为了确保软件源代码的完整性、可追溯性和可持续性,以及便于团队合作和版本控制的一系列规定和最佳实践方法。
遵守存储规范可以提高开发效率、降低风险,并简化软件开发过程。
二、存储目录结构为了更好地组织和管理软件源代码,我们建议按照以下目录结构进行存储:1. 根目录:用于存放整个软件项目的源代码和相关文档。
2. src目录:存放源代码文件,按照模块或功能进行组织。
3. doc目录:存放文档文件,包括需求文档、设计文档、用户手册等。
4. test目录:存放测试相关的文件,包括单元测试、集成测试、性能测试等。
5. build目录:存放构建脚本和编译生成的可执行文件。
6. lib目录:存放第三方库和依赖的外部组件。
三、版本控制版本控制是软件开发过程中至关重要的一环。
以下是几点关于版本控制的最佳实践方法:1. 使用合适的版本控制工具,如Git或SVN,对源代码进行管理。
2. 每次提交代码时都要写明清晰的提交信息,包括修改内容和目的。
3. 针对不同的开发任务,创建不同的分支进行开发,并定期合并到主分支上。
4. 使用标签(tag)对重要的版本进行标记,便于回滚和发布。
四、文档管理良好的文档管理对于软件开发团队的合作和项目可维护性至关重要。
以下是几点关于文档管理的建议:1. 使用标准化的模板和格式编写文档,保证文档的一致性。
2. 将文档与相应的代码模块关联起来,便于查找和更新。
3. 定期对文档进行审核和更新,确保其与源代码保持同步。
五、备份和恢复为了防止意外情况导致的数据丢失,必须对软件源代码进行备份,并保证能够及时恢复。
以下是几点关于备份和恢复的建议:1. 定期对源代码进行备份,并将备份文件存储在安全可靠的地方,避免单点故障。
软件工程源代码管理方案在软件开发过程中,源代码管理是非常重要的一个环节。
源代码管理系统可以帮助团队协作、版本控制、代码备份与恢复、代码审阅以及持续集成等功能。
本文将介绍一种基于Git的源代码管理方案,主要包括代码仓库组织结构、分支管理策略、代码审阅流程、持续集成等内容。
一、代码仓库组织结构在实际的软件开发中,通常会存在多个项目、多个团队、多个开发分支等情况。
因此,合理的代码仓库组织结构对于整个团队的开发效率和代码管理非常重要。
一般来说,可以采用以下的代码仓库组织结构:1. 单一仓库结构所有的项目代码都放在同一个仓库中,每个项目对应一个子目录。
这种结构适合于项目较小、团队较小的情况。
2. 多仓库结构每个项目对应一个独立的代码仓库,每个仓库可以有自己的权限管理、代码审阅等。
这种结构适合于项目较大、团队较大的情况。
根据具体情况选择合适的代码仓库组织结构,可以提高团队的协作效率和代码管理效果。
二、分支管理策略在软件开发中,通常会存在多个开发分支、发布分支、维护分支等情况。
因此,合理的分支管理策略对于团队的协作、代码集成、版本控制等非常重要。
1. 主分支通常情况下,会有一个主分支(main)来表示当前生产环境的代码,这个分支是稳定的,只能进行代码合并(Merge),不允许直接提交代码。
2. 开发分支每个新功能、新需求通常会从主分支上创建一个新的开发分支(development),在这个分支上进行功能开发、单元测试等。
当功能开发完成且测试通过后,再将这个分支合并到主分支上。
3. 版本分支每个发布版本对应一个版本分支(release),在这个分支上进行版本发布前的测试、版本修复等。
当测试通过后,再将这个分支合并到主分支上并打上一个标签(tag)作为发布版本。
如果在发布后发现了一些bug需要修复,可以从对应的版本分支上创建一个修复分支(hotfix),在这个分支上进行bug修复,然后将修复分支合并到主分支和版本分支上。
源代码文档管理制度一、总则源代码文档管理制度是为规范和加强对源代码文档的管理和使用而制定的,旨在确保源代码文档的安全、完整、可靠、适用,保护公司知识产权和业务机密,保障软件产品的质量和安全。
二、适用范围本制度适用于公司所有涉及软件开发的部门和人员,包括但不限于软件开发工程师、测试工程师、项目经理、质量保障人员等。
三、源代码文档管理1.源代码文档的定义源代码文档是指软件开发过程中产生的所有源代码文件、注释文档、配置文件、编译文件等相关文件。
2.源代码文档的保护(1)源代码文档的备份为了防止因意外丢失或损坏而导致的源代码文档丢失,每个项目组成员都应严格按照公司的备份要求进行源代码文档的备份。
(2)源代码文档的权限控制对于敏感性较高的源代码文档,应设定相应的权限控制,确保只有获得授权的人员才能访问和修改。
3.源代码文档的版本管理为了进行版本控制和追踪,所有的源代码文档都应纳入源代码版本管理系统,并依据项目进度和需求进行适时的版本控制。
4.源代码文档的归档项目开发完成后,应对源代码文档进行归档,确保可以随时取用并追溯。
五、源代码文档使用1.源代码文档的获取只有获得项目负责人或上级领导的授权,才能获取到相应的源代码文档。
2.源代码文档的修改对于需要对源代码文档进行修改的情况,必须经过严格的审批和记录,修改后的源代码文档应同步更新到版本管理系统中。
3.源代码文档的共享在进行源代码文档共享时,应注意保护公司的商业机密和知识产权,确保不会泄露给未经授权的人员或外部机构。
六、责任与义务1.公司部门和人员应严格遵守公司的源代码文档管理制度,做好源代码文档的保护和使用工作,确保公司软件产品的安全和质量。
2.项目负责人应确保源代码文档管理的规范实施,及时发现和解决各种问题,保证项目的顺利进行。
3.每个项目组成员都有责任保护源代码文档的安全,不得擅自泄露或篡改源代码文档。
七、违规处理对于违反源代码文档管理制度的行为,公司将根据情节严重程度给予相应的处理措施,包括但不限于口头警告、书面警告、降职调岗、开除等。
软件源代码版本管理规范1. 概述软件源代码版本管理是指对软件项目中的源代码进行管理和控制的一种方法。
良好的版本管理实践可以确保团队成员之间的协作高效,并降低项目开发过程中的风险。
本文将介绍软件源代码版本管理的规范。
2. 版本控制系统的选择在进行软件源代码版本管理时,团队需要选择适合自己的版本控制系统。
常用的版本控制系统包括Git、SVN等。
团队应根据项目特点和团队成员的技术熟练程度选择合适的版本控制系统。
3. 代码库的组织为了方便管理和维护,代码库应该进行合理的组织。
可以按照项目模块或功能进行分组,确保团队成员能够快速找到需要的代码。
4. 分支管理策略分支是版本管理中的重要概念,它可以实现并行开发和功能隔离。
团队应制定分支管理策略,包括主分支的维护、开发分支的创建与合并等规范。
5. 提交信息规范团队成员在进行代码提交时,应该遵循统一的提交信息规范。
提交信息应该包括修改的文件、修改的内容以及修改的原因等信息,以便于他人快速理解和回溯代码变更历史。
6. 代码审查代码审查是确保代码质量的重要环节。
团队应该建立代码审查的流程和规范,明确审查的时间节点和参与人员,并记录审查意见和修改建议。
7. 版本发布和打标签版本发布是软件开发过程中的重要节点,团队应该制定版本发布的规范,包括版本号的命名规则、发布前的测试要求等。
同时,对重要的版本可以打标签,方便以后快速回溯历史版本。
8. 错误处理和回滚在版本管理过程中,难免会出现一些错误。
团队应该建立快速反应和处理错误的机制,并记录错误的处理过程。
当必要时,团队可以进行代码回滚操作,恢复到之前的版本。
9. 文档管理除了源代码的版本管理外,团队还应该对相关的文档进行管理。
文档应该与源代码保持同步,并使用版本控制系统进行管理,确保文档的准确性和可追溯性。
10. 结语良好的软件源代码版本管理规范是团队协作和项目管理的基石。
通过遵循规范,团队可以提高开发效率,降低风险,并保证项目的顺利进行。
软件版本管理规范软件版本管理规范是指对软件开发过程中的版本进行管理的一系列规定和措施。
版本管理规范的目的是为了保持软件开发过程的稳定性和可控性,确保软件的质量和可靠性。
一、版本号命名规范1. 版本号由主版本号、次版本号和修订版本号组成,格式为“主版本号.次版本号.修订版本号”。
2. 主版本号表示重大功能改变或架构改变,增1。
3. 次版本号表示新增功能或重要的bug修复,增1。
4. 修订版本号表示小的改动或bug修复,增1。
5. 版本号从1开始,多次迭代后主版本号不变,次版本号递增,修订版本号保持从1开始递增。
二、版本控制规范1. 使用版本控制工具对源代码进行管理,例如Git、SVN等。
2. 每个项目创建独立的分支,主分支用于稳定版本发布,开发分支用于功能开发和bug修复。
3. 每个开发人员在自己的独立分支上进行开发,开发完成后将代码合并到开发分支,测试通过后再合并到主分支。
4. 每个版本发布前,对代码进行全面的测试,包括单元测试、集成测试和系统测试。
三、文档管理规范1. 每个版本发布前,编写相应的版本发布说明文档,包括版本改动内容、新增功能、修复bug等。
2. 所有的文档都要进行版本管理,与代码版本相对应。
3. 每个版本发布后,要及时更新相应的文档,包括用户手册、API文档等。
四、发布规范1. 每个版本发布前,要进行严格的测试,确保软件的质量和稳定性。
2. 每个版本发布时,要记录发布日期、发布人、版本号等信息。
3. 发布后要及时更新版本控制工具,将发布的版本标记为稳定版本。
五、变更管理规范1. 每个版本开发过程中,要及时记录相关的变更信息,包括功能变更、bug修复等。
2. 对于关键的变更,要在团队内进行讨论和评审,并及时通知相关人员。
总之,软件版本管理规范是保持软件开发过程稳定和可控的重要手段。
通过合理的版本号命名、版本控制、文档管理、发布规范和变更管理,能够更好地管理软件版本,提高软件开发的效率和质量。
第一章总则第一条为加强公司软件源代码安全管理,确保软件源代码的安全性和完整性,防止泄露、篡改等安全事件的发生,特制定本制度。
第二条本制度适用于公司所有软件项目的源代码管理,包括但不限于内部研发、合作开发、外包开发等。
第三条软件源代码安全管理应遵循以下原则:1. 防范为主,防治结合;2. 安全责任到人,明确分工;3. 技术与管理相结合,确保安全措施有效实施。
第二章组织机构与职责第四条成立软件源代码安全管理委员会,负责制定和监督实施软件源代码安全管理制度,协调解决重大安全事件。
第五条软件源代码安全管理委员会组成如下:1. 主任:由公司分管信息化工作的领导担任;2. 副主任:由公司信息部门负责人担任;3. 成员:由研发部门、法务部门、人力资源部门等相关人员组成。
第六条软件源代码安全管理委员会的主要职责:1. 制定和修订软件源代码安全管理制度;2. 审批重大软件源代码安全事件;3. 组织开展安全培训和检查;4. 负责安全事件的调查和处理。
第三章安全管理措施第七条软件源代码应存储在安全可控的环境中,使用加密技术进行保护,防止未授权访问。
第八条软件源代码版本控制应采用专业的版本控制系统,如Git、SVN等,并设置合理的权限管理。
第九条软件源代码应定期进行备份,备份文件应存储在安全可靠的位置,并定期进行验证。
第十条软件源代码的修改、提交和审查应遵循以下流程:1. 修改人员需进行身份验证,并填写修改日志;2. 修改内容应经过代码审查,确保代码质量和安全性;3. 审查通过后,方可提交到版本控制系统。
第十一条任何人员未经授权,不得复制、下载、传播或泄露软件源代码。
第十二条定期对软件源代码进行安全审计,及时发现和修复安全漏洞。
第四章奖励与处罚第十三条对在软件源代码安全管理工作中表现突出的个人或团队,给予奖励。
第十四条对违反本制度的行为,根据情节轻重,给予警告、记过、降职等处罚;构成犯罪的,依法追究刑事责任。
第五章附则第十五条本制度由软件源代码安全管理委员会负责解释。
软件源码版本管理规范1.引言2.版本控制工具选择版本控制工具是进行软件源码版本管理的核心工具,常见的版本控制工具有Git、SVN等。
在选择版本控制工具时需要综合考虑以下几个方面:-功能和特性:不同的版本控制工具在功能和特性上有差异,在选择时需要选择适合团队需求的工具。
-使用难度:团队成员对于版本控制工具的熟悉程度也是选择的因素之一-社区支持和生态圈:版本控制工具的社区支持和生态圈对于后续维护和开发也有重要的影响。
3.分支管理分支管理是版本管理过程中的重要环节,可以根据不同的需求和开发阶段创建不同的分支,常见的分支包括主分支、开发分支、测试分支等。
分支管理的几个原则包括:-主分支:主分支用于线上稳定版本的管理,一般不直接在主分支上进行开发。
- 开发分支:开发分支用于开发新功能或者修复bug,一般从主分支切出,并定期合并主分支最新代码。
-测试分支:测试分支用于测试人员进行测试,一般从开发分支切出,并定期合并开发分支最新代码。
-版本分支:当一些版本需要进行发布时,需要创建一个版本分支,并在版本发布后进行合并。
4.版本号命名规范版本号命名规范可以根据实际需求进行制定,常见的版本号命名规范有:- 主版本号.次版本号.修订号:主版本号表示功能的重大更新,次版本号表示功能的增加或改进,修订号表示bug修复或细节调整。
-年份.主版本号.次版本号:年份可以用于标识每一年的主要版本更新。
5.提交规范提交规范是指在使用版本控制工具提交代码时的规范,包括提交信息的格式、提交的代码范围等。
常见的提交规范有:-提交信息格式:每个提交信息都应包括一个简短的标题和详细的描述,描述中需要说明提交的目的、改动的范围以及影响的内容等。
6.发布管理发布管理是软件维护和迭代过程中的一个关键环节,包括版本的打包、发布以及版本记录的更新等。
常见的发布管理流程包括:-确定发布的版本号:根据实际需求和版本号命名规范,确定需要发布的版本号。
-打包和测试:将代码进行打包,并进行测试验证,确保产品的质量和稳定性。
源代码更新管理制度目标该源代码更新管理制度旨在确保有效的源代码版本控制和更新管理,以提高开发团队的工作效率和项目的质量。
背景源代码更新是软件开发过程中的常见任务,它涉及修改、优化和修复现有源代码以满足新的需求或修复错误。
为了保证更新的一致性和可追溯性,需要建立一个规范的管理制度。
范围该制度适用于所有参与软件开发和源代码管理的团队成员。
流程1.代码库管理1.1.代码仓库所有的源代码应存储在统一的代码仓库中,确保所有团队成员都可以访问和管理代码。
代码仓库应定期备份,以防止数据丢失。
1.2.分支策略使用主分支(master)作为稳定和可发布的代码版本。
每个开发任务应在新的分支上进行,并在任务完成后进行合并。
避免直接在主分支上进行开发,以减少可能的冲突和错误。
2.代码更新流程2.1.任务规划开发团队应根据需求和优先级制定代码更新任务。
每个任务应有明确的目标和截止日期。
2.2.代码编写和测试开发人员应在相应的分支上进行代码编写,并定期提交到代码仓库。
在提交代码前,应进行必要的代码测试和质量控制。
2.3.代码评审和合并经过测试和质量控制后,代码应提交给同事或团队成员进行评审。
评审人员应对代码进行审查,并提供必要的反馈和建议。
在评审通过后,代码应合并到主分支或特定的发布分支中。
2.4.发布和部署经过评审并合并到发布分支的代码可以进行发布和部署。
发布前应进行最终的测试和验证。
部署过程应记录和通知相关人员。
评估和改进为了确保源代码更新管理制度的有效性,应定期评估和改进该制度。
开发团队应根据实际情况,收集反馈和经验教训,并进行相应的调整和改进。
以上是源代码更新管理制度的简要概述,详细的制度内容和操作细节可进行进一步的编制和完善。
软件版本管理规范1.第一章目的本规范详细规定软件项目版本管理的对象、存储目录、分支、权限、维护等内容,使软件项目版本管理流程化并规范化,确保在系统开发和实施过程中项目的完整性和一致性。
2.第二章适用范围所有系统开发及实施项目的软件项目都应进行版本管理。
项目中所有正式文档和代码都应纳入配置库(可使用工具建立配置库,本文所述使用的是SVN)进行版本管理。
3.第三章职责配置库管理员:负责配置库的日常维护和管理;监督开发及测试部门及时提交版本管理对象(即配置项)。
此岗位可由开发或测试人员兼任。
4.第四章内容4.1. 版本管理对象包括但不限于:项目总体计划可行性研究报告开发计划需求说明书需求设计原型设计说明书系统开发变更申请单系统管理手册用户操作手册培训计划培训记录源程序支持系统运行的配置文件存储过程脚本测试计划测试用例测试脚本测试报告上线计划上线申请版本维护日志4.2. 配置库的目录结构每个项目在配置库中应拥有唯一的项目名称。
配置库目录结构及项目内部的目录结构建议按下列格式创建。
配置库目录结构规划:┠tags(发布)┃ ├v1.0.0_T1_2016909┃ ├v1.0.0.33899_T1_20161009┃ ├v1.0.0_R1_20161109┃ ├v1.1.0_T1_20170109┃ └v1.1.0_R1_20170209┠trunk(主版本)┃ └projectA┃ ├src┃ ├MY_MOOC┃ ├doc┃ ├tool┃ ├。
┖branches(分支)├SY_ABC├TJ_ABC├WH_MOOC其中,项目内部的目录结构:|–projectA|–src (保存该项目的源程序)|–doc (保存项目相关文档)|–000.项目管理(保存项目过程管理相关文档)|–010.项目计划(保存项目计划相关文档)|–020.项目需求(保存项目需求相关文档)|–030.系统设计(保存项目设计相关文档)|–030.系统测试(保存项目代码测试相关文档)|–040.系统实施(保存项目部署实施相关文档)|–050.系统运维(保存项目运维文档,包括培训、用户手册等)|–060.技术资料(保存项目技术文档,包括第三方技术资料等)|–。
(保存项目过程管理相关文档)|–tool (包括该项目特定的开发、编译、测试等工具)4.3. 分支(branch)建议使用分支来协同不同职能小组对同一个配置库的使用,可按照以下方式进行分支的管理。
解决方案建立三个分支,包括主版本开发(trunk)、分支版本开发(branches)和发布(tags)。
主版本开发是所有分支版本的基准版本,主版本的开发分支。
开发部门开发使用。
分版本开发主版本的分支版本,供开发部门开发使用。
开发工程师如果以主版本为基准,进行软件项目开发,要先将trunk目录下的代码分支到branches目录的一个子目录,在那里对代码进行开发。
多个主版本的分版本可通过在branches顶级目录创建多个分支目录来区分。
发布测试和发布专用分支,该分支代码不允许任何形式的修改。
每个经过测试后的不同版本的代码做快照放到此分支文件夹下。
4.4. 权限管理应对配置库的访问权限进行管理,确保软件系统的完整性和安全性。
建议按如下方式进行管理。
4.4.1. 开发工程师仅拥有自己所属项目的add file、delete file、check out、check in权限,无目录创建和删除权限。
开发工程师若想创建目录,需向配置库管理员申请。
4.4.2. 测试工程师拥有每个项目的测试分支的add file、delete file、check out、check in权限,无目录创建和删除权限,对于其他分支只有只读权限。
4.4.3. 配置库管理员拥有全部权限,但增删项目和增删目录需要有项目负责人批准。
4.4.4. 其他人员若需要配置库访问权限,需经技术总监或经技术总监授权的项目经理批准,由配置库管理员分配权限。
4.5. 版本管理应对软件系统的版本进行管理,确保版本的准确性和可追溯性。
建议按如下方式进行管理。
4.5.1. 版本维护软件工程各阶段产生的各种文档和代码,应及时并统一上载到配置库由配置库管理员统一管理。
对于要修改的配置项,应从配置库中检出(check out)后修改,修改完毕后及时检入(check in),并填写修改的原因和内容。
配置项的历史版本应保存在配置库中。
4.5.2. 分支迁移从开发分支到测试分支的迁移,由开发工程师操作。
迁移的时机有:1. 当开发负责人提交测试申请时;2. 开发过程中进行测试,修改好一个或多个bug,需要测试工程师验证时。
从测试分支到发布分支的迁移,由配置库管理员操作。
迁移的时机有:1.当开发组提交上线申请时。
对于每个项目从测试分支到发布分支的迁移,配置库管理员要建立分支迁移日志,并详细记录。
4.5.3. 版本升级软件系统迁移到发布分支后,生成新的版本。
每个系统新的版本不仅以分支形式存在于配置库中,并且要以独立压缩包形式备份。
版本的命名规则为,version N1.N2.N3[.N4][_][T/R5]_YYYYMMDD 1. N1是系统编号。
当项目整体重新设计时,N1加1,基数为12. N2是模块编号。
当模块重新设计时,N2加1,基数为03. N3是功能编号。
当项目增加某一功能,或某一功能需要修改时,N3加1,基数为04. N4是BUG编号。
当项目的BUG被修复时,N4加1,基数为05. T/R5中的T/R分别对应Test/Release。
当项目发布时为R,当项目提交测试时为T,T/R5数值基数为0,以发布/测试提交顺序递增加1 。
6. YYYYMMDD代表生成版本的实际年月日,如:201602024.5.4. 版本基线定义公司首次采用版本管理规范时,可以采取下列方法定义一个基线版本。
获取各项目最新的源程序、配置文件和文档,形成发布分支、测试分支和开发分支。
对每个项目的提测和发布分支都生成一个版本基线,如:Version1.0.0_R1_20160202。
4.6. 第五章版本提交准则4.6.1. 提交之前先更新更新的原则是要随时更新,随时提交。
当完成了一个小功能,能够通过编译并且自己测试之后,谨慎地提交。
如果在修改的期间其他同事也更改了同一个文件,那么update更新时会自动进行合并,如果修改的是同一行或者二者修改差异过大,那么合并时会产生冲突。
这种情况就需要同之前的开发人员联系,两人一起协商解决合并冲突。
解决合并冲突之后,还需要两人一起测试,以保证解决冲突之后,各自的程序不会受到影响。
在更新时注意所更新文件的列表,如果提交过程中产生了更新,则需要重新编译并且再次完成单元测试,再进行提交。
这样既能了解别人修改了哪些文件,同时也能避免合并错误导致代码有错。
4.6.2. 保持原子提交为确保在需要时可以随时回溯代码版本,每次提交的代码只能包含实现一个独立、完整功能所必需的代码,不能夹带提交其他及此功能不相关的代码。
为尽早提交,也可以将此独立、完整功能分解为若干小细节功能,分别开发并提交所必需的代码,但必须确保多次提交的功能代码组合在一起,完全实现此独立、完整功能。
仅提交自己修改的部分,最好不要一下子将整个项目提交。
每完成一个独立、完整的功能后,最好尽早提交,以免后续更改时出现bug,无法恢复到正常代码。
每次提交的间歇尽可能地短,以几个小时的开发工作为宜。
我们提倡多提交,也就能多为代码添加上保险。
为做到尽早提交,在开发功能模块的时候,先将功能分解成一个个独立的、不可再分割的小细节功能,分别完成。
每完成一个并通过单元测试,就提交一次。
在修改bug的时候,每修改掉一个bug并且确认修改了这个bug,也就提交一次。
4.6.3. 不要提交本地自动生成的文件一般配置管理员都会将项目中一些自动生成的文件或者及本地配置环境有关的文件屏蔽提交(例如Eclipse中的.classpath文件等,Visual Studio中的.suo文件,Debug,Release,Obj等编译文件夹及其下文件,以及其他的一些自动生成,同编译代码无关的文件)。
如果项目中没有进行这方面的配置来强行禁止提交这样的文件,请自觉不要提交这样的文件,如果不小心签入了,需要从配置库中删除,以免其他同事在更新后就可能及本地的环境冲突从而影响大家的工作。
4.6.4. 不要提交不能通过编译的代码代码在提交之前,首先要确认自己能够在本地编译通过,并且代码在提交前已经通过自己的单元测试。
如果在代码中使用了第三方类库,要把相应类库文件统一存储在代码相应目录中并提交,以免项目组成员中有些成员可能没有安装相应的第三方类库,从而在更新代码后引起代码运行错误。
4.6.5. 不要提交自己不明白的代码代码在提交之后即被项目成员所分享。
如果提交了不明白的代码,自己看不懂,别人也看不懂,如果在以后出现了问题将会成为项目质量的隐患。
因此在引入任何第三方代码之前,确保对这个代码有一个很清晰的了解(必要时应有对应文档说明)。
4.6.6. 并行开发(同一模块)前沟通如果开发小组采用并行开发模式开发同一模块功能,在开发前,需要对协作开发进行合理的工作计划及任务分配,让小组成员相互间了解对方的工作计划及工作内容。
这样能尽可能的减少在开发过程中可能出现的冲突,提高开发效率。
同时也能够在和成员的交流中发现自己之前设计的不足,完善自己的设计。
4.6.7. 对提交更新的信息采用明晰的标注如果提交空的标注或者不确切的标注将会让项目组中其他的成员不了解此次签入动作的背景情况(如新增/修改签入的原因是什么?新增/修改什么内容?),项目经理无法通过提交的标注信息,清晰的掌握开发工作进度细节进度。
没有清晰标注,甚至会对回溯代码版本造成影响。
所以,在提交工作时,要填写明晰的标注,能够概要的描述所提交文件的信息,让项目组其他成员在看到标注后不用详细看代码就能了解你所做的修改。
统一的标注格式为:签入动作+””+”#” +标识ID+”;”+签入内容+[“;”]+[签入原因]签入动作:+:表示增加了功能(新增功能)*:表示对某些功能进行了更改(修改功能)-:表示删除了文件,或者对某些功能进行了裁剪,删除,屏蔽(删除功能)^:表示修正bug(修复功能缺陷)软件源码版本管理规范!:优化功能代码的执行性能(代码性能优化)标识ID:ID值是从项目开发计划中的WBS任务分解表中获取,对应具体功能编号。
签入内容:对新增/修改/删除的内容进行简单描述签入原因:对修改/删除的原因进行简单描述示例:+ #62235;新增房源审核功能* #62236;将房源审核的二级审核修改为一级审核;为缩短业务流程长度,提高业务响应速度- #62237;删除多余功能;房源审核由二级审核改为一级审核后删除无用功能^ #108;房源主图显示尺寸控制为300*300;房源主图显示尺寸撑大页面。