《软件产品研发版本管理规范.docx》由会员分享,可在线阅读,更多相关《软件产品研发版本管理规范.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、XXX有限公司软件产品研发版本管理规范2022年10月在项目中添加自动化测试环节,使用GitLab的webhook设定,在进行merge 操作时自动运行自动化测试验收。4、规范合并前的基础原则develop分支是开发过程中代码的中心分支,与master分支一样,这个分支也 是非常重要。由于几乎每位开发者都有可能参与这个分支的合并操作,所以合 并之前需要建立基本的原则:(1)通过本地编译;(2)本地本次修改内容没有新的SonarQube高级别的缺陷对应;(3)通过本地单元测试;(4)通过手工或者自动化验收的测试。5、定期提交代码在有开发任务的前提下,每位开发者每日至少提交一次代码,频繁的提交可以
2、 帮助团队开发进度的透明化,减少多人开发时的代码冲突。6、妥善管理临时分支临时分支使用之后需要删除,同时删除远程仓库中的临时分支。分支的增多意 味着可能的沟通、合并、冲突等的增加,因此要做到不用即删。feature等临时 分支开发的信息已经完整地在develop分支中进行了保存,删除feature等临时 分支不会引起问题追踪上的问题。4版本管理检验标准。是否有一条基线能够随时保持和生产环境上使用的代码一致;今是否有一条基线能够随时保证最新开发的内容可以随时进行发布;今临时紧急线上修正能够减小对同时并行开发的团队的最小影响;今多团队并行开发之间能否做到尽可能小的相互影响;今发布是否能兼顾例行发布
3、和紧急发布并能随时确认影响;令团队是否熟悉版本管理工具并能在项目中有效使用;令版本相关各操作是否有规范的流程以及忠实的执行。修订记录序号修订内容修订日期版本修订人1初稿1.0目录1、版本管理工具42、分支分类42.1 长期分支42.2 临时分支43分支管理53.1 master 分支53.2 develop 分支53.3 feature (特性)分支6feature 分支开发步骤63.3.1 feature 分支规范63.4 release (发布)分支7release 分支开发步骤73.4.1 release 分支规范83.5 hotfix (Bug) 分支8ho廿ix分支开发步骤83.5.
4、1 hotfix 分支规范93.6 分支管理原则94版本管理检验标准10本规范适用于XXX有限公司自有产品研发过程的版本管理,包括程序源代码、 文件、配置、测试程序、各种自动化脚本等,目的是用于规范产品研发过程中 版本的管理,提高生产环境的可靠性、稳定性、弹性和安全性。1、版本管理工具统一采用GitLab作为版本管理工具。2、分支分类长期分支序号分支名称备注1master用于保持与生产环境一致,保证生产环境的实时可用状态2develop开发的集成分支,主要用于体现开发最新的状况临时分支序号分支名称备注是否可为多条1feature特性分支可为多条2release发布实施分支可为多条3hotfix
5、Bug对应分支可为多条3分支管理master 分支1、生产环境Bug重现与调查生产环境发生问题时,通过master分支可以清楚地知道Bug发生的生产环境所 对应的源代码基线,通过这条基线进行Bug重现。2、新的功能发布以master分支为基础创建feature分支进行新功能开发,通过测试后,确认此 分支功能可以发布,便可与master分支进行合并,合并后以master分支作为 发布基线,发布时必须附加版本号,同时可将feature分支删除。3、紧急Bug修复发布与master分支更新在生产环境出现Bug后,在master分支基础上创建hotfix分支进行Bug修复, 修复紧急Bug之后,必须合
6、并到master分支,合并后以master分支作为发布 基线,同时可将hotfix分支删除。概括地说,master分支主要用于与生产环境保持绝对统一。3.1 develop 分支1、特性开发合并根据产品模块进行拆分,不同的模块由不同的团队负责。或者根据特性进行拆 分,不同的特性由不同的团队负责。在这些feature分支开发完毕后,需要合并 到develop分支上,以保证develop分支具有最新的功能。2、紧急Bug修正发布与develop分支更新当生产环境出现Bug,紧急修复后需要立即同步到master分支,同时也需要在 develop分支上进行体现。不直接在develop上进行管理是因为有
7、很多因素需要 考虑,比如新的功能虽然开发完毕了,但是由于其他制约因素,发布的时间尚 未确定,暂时不能将这些已经完成开发和测试的内容发布到master分支上。 概况地说,develop分支聚合所有代码,具有最完整最新的功能。3.2 feature (特性)分支feature分支一般用于开发新的特性,而与其关联的发布可能近在眼前,也可能 需要很长一段时间。特性分支最终会被合并到develop分支,然后被丢弃。3.2.1 feature分支开发步骤步骤内容Git命令1以develop分支为基础创建feature分支git checkout -b 特性分支名称 develop2进行新特性开发直至提交代
8、码git add文件名称git commit -m ”开发内容注释信息”3feature分支开发完成后切换至develop分支git checkout develop4合并feature分支到develop分支git merge no-ff特性分支名称5删除特性分支git branch -d特性分支名称6推送到远端仓库保存git push origin develop3.2.2 feature分支规范事助说明源分支feature分支以develop分支作为源分支目标分支feature分支的合并目标分支为develop分支分支命名feature-* ,例如:feature-userrelease
9、 (发布)分支release分支基于develop分支创建,主要用于版本的发布,保证最后一步的安 全和顺畅,为发布所做的各种准备或小规模的Bug修复,都可以在此分支上完 成。release分支上的一切准备就绪标志着develop分支的最新功能已经合并到 了 master 分支。3.2.3 release分支开发步骤步骤内容Git命令1以develop为基础创建release分支git checkout -b release-版本号 develop2进行发布准备或小的bug修复,然后进行提交git commit -a -m release 相关信息”3切换至master分支git checkou
10、t master4将release分支内容合并到master分支git merge no-ff release-版本号5设定taggit tag -a 版本号-m release 的 tag 信息”6切换至develop分支git checkout develop7将release分支内谷合并到develop分支git merge no-ff release-版本号8删除release分支git branch -d release-版本号9将develop分支推送到远程仓库git push origin develop10切换至master分支并推送到远程仓库git checkout mast
11、er git push origin master11将tag信息推送到远程分支git push origin 版本号3.2.4 release分支规范事项说明源分支release分支以develop分支作为源分支目标分支release分支的台井目标分支为develop分支和master分支,在此分支上小的 bug修复必须同时同步到develop分支和master分支分支命名release-*,例如:release-user3.3 hotfix (Bug)分支hotfix分支与release分支非常类似,都涉及对生产环境的master分支进行版本 的更新,但不同的是hotfix分支往往是因为生
12、产环境上出现了非常紧急的问题 需要立即修复,而项目的特性开发等又不能受到影响而中断,这时就可以基于 master分支生成一个新的hotfix分支,在此发支上进行Bug修复,即不影响 develop分支,又能保证生产环境紧急问题的及时修复,修复完毕后必须向 develop分支进行同步更新。3.3.1 hotfix分支开发步骤步骤内容Git命令1以master为基础创建hotfix分支git checkout -b hotfix-版本号 master2进行bug修复,然后提交代码git commit -a -m hotfix 相关信息3切换至master分支git checkout master4
13、将hotfix分支内谷合并到master分支git merge no-ff hotfix-版本号5设定taggit tag -a 版本号-m hotfix 的 tag 信息”6切换至!J develop分支git checkout develop7将hotfix分支内谷合并到develop分支git merge no-ff hotfix-版本号8删除hotfix分支git branch -d hotfix-版本号9将develop分支推送到远程仓库git push origin develop10切换至master分支并推送到远程仓库git checkout master git push o
14、rigin master11将tag信息推送到远程分支git push origin 版本号hotfix分支规范事助说明源分支hotfix分支以master分支为源分支目标分支hotfix分支的台井目标分支为develop分支和master分支,Bug修复后必须同时 同步到develop分支和master分支分支命名hotfix-* ,例如:hotfix-user分支管理原则1、对master分支进行保护master分支保持着软件可以正常运行的状态,不允许开发者直接对master分支 的代码进行修改和提交。结合GitLab的使用,可以将master分支设定为 protect 方式。2、对master分支进行权限管理master分支由专人管理,结合GitLab的权限管理,设定团队负责发布的人具有 owner或者master的权限,其他人禁止直接对此分支进行操作。3、结合自动化测试,建立高效的反馈机制