您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > svn项目版本分支管理
1华信邮电咨询设计研究院有限公司物谋道名信本固华项目版本分支管理2华信邮电咨询设计研究院有限公司物谋道名信本固华问题目前公司配置管理在策略上采用的是不稳定主干(unstabletrunk)模式,所有的项目都在同一主干上进行修改,在每次上线后并没有明确的stable分支版本。1)、多个项目组开发人员都可能并发对同样代码进行修改,造成了严重的代码冲突问题。例如张三修改了a.java并上QA测试服务器,在QA测试过程中,李四也对a.java进行修改并上QA,李四的代码覆盖了张三的代码。由于是SCM人员并不清楚代码冲突情况,这样张三和李四的代码上QA很容易相互影响,并很难查清具体原因。2)、由于没有明确stable分支版本,导致上QA、上生产只能采用增量更新,上QA、上生产出问题后的代码回滚很麻烦,严重影响了测试、上线效率。对于生产环境运行的代码的具体版本并没有明确的管理,导致生产系统出问题后要排查问题也很难查。3)、由于核心基础包没有与上层应用隔离,导致大家都会对核心包进行修改,修改后代码质量并没有有效控制。于是出现因为修改基础包影响整个系统功能等现象。3华信邮电咨询设计研究院有限公司物谋道名信本固华稳定主干策略•使用主干作为稳定版的发布。•bug的修改和新功能的增加,全部在分支上进行。•紧急缺陷修改或新功能开发以分支隔离。•分支上的开发和测试完毕以后才合并到主干。•主干上的每一次发布都做一个标签而不是分支。•每次发布的内容调整起来比较容易。•缺点是分支合并所增加的成本。4华信邮电咨询设计研究院有限公司物谋道名信本固华现状及解决途径团队当前情况:•1)新专业的不断开发,发布更新较为频繁。•2)有固定的发布周期,同时也存在比较多的Bug。•3)修改任务通常比较小,改动范围通常不大,时间通常较短。•4)不同的功能模块有不同的小组负责,耦合度相对较低。解决途径:•1)、分支管理策略:采用适当的分支管理策略来保证开发库、测试库、发布库的隔离。•2)、适当引入每日编译、持续集成、CodeReview等敏捷开发的最佳实践。5华信邮电咨询设计研究院有限公司物谋道名信本固华TrunkR1.0版本发布建立开发分支1建立开发分支2主干复制测试分支合并bugfix测试发布A合并tag01B1.1.3集成紧急缺陷测试分支Hotfix测试发布B合并tag02主干时刻处于稳定状态,随时可以发布B1.1.4集成测试分支bugfix合并测试发布Ctag03V1.1发布合并改进的版本分支管理方案6华信邮电咨询设计研究院有限公司物谋道名信本固华1、主干时刻处于稳定状态,随时可以发布。设SCM人员对主干代码进行管理,普通开发人员只读。2、SCM为开发任务建立开发分支。常规的可以以小组为单位建立分支,较大的任务可以建立专门的分支。3、B版本集成之日或提前,从主干复制一个测试分支,包含在该版本的各开发分支向此测试分支合并。4、对测试分支代码进行测试,出现bug在测试分支上更改,无误后发布。5、测试分支代码发布后,合并入主干,并在主干上进行标记。6、对紧急修复(Hotfix)的情况,可以从主干复制出测试分支,在测试分支上进行紧急修改,并在测试后发布,发布后同样将代码合并会主干,做标记(Hotfix仅限于可以很快解决的小问题,如果更改时间过长,则需采用常规方法完成)。7、如果在测试分支测试过程中需要Hotfix工作,则再复制一个新的测试分支进行Hotfix,测试后发布。然后同时合并入原测试分支和主干,并在主干上做标记(此过程未在上图中画出)。9、测试分支发布后,开发分支可以删除;测试分支合并入主干后,测试分支可以定期删除。实施过程7华信邮电咨询设计研究院有限公司物谋道名信本固华方案优点解决了没有实施分支策略时,代码不能经常签入的问题。主干代码始终处于稳定的状态随时可以发布,降低了风险。可以基于一个完整的测试分支进行测试及发布,而不是以口口相传的方式增量更新。方案缺点建立分支、合并分支增加了工作量。考虑实际情况,以及版本控制工具的辅助,增加的工作量应该可以接受。如果某些开发分支工期跨越多个发布周期,修改过于剧烈,合并分支时可能工作量较大。可以考虑分解任务,避免过大的任务出现。在同一时间最好只有一个测试分支,因此建立测试分支的权限需要限制,除hotfix场景外应当避免。方案的优缺点
本文标题:svn项目版本分支管理
链接地址:https://www.777doc.com/doc-1197304 .html