SVN 分支管理

日期:2017-9-1 17:24 | 标签: | 阅读:316

为什么要进行版本管理

现状

  1. 新功能与旧功能共用一个分支,每次发布时由于将未完成的新功能包含在内会发生报错;如最新一次的登陆修改,由于发布时沟通不到位,发布后导致PC端无法登陆。
  2. 修复的bug不能得到及时更新而影响客户体验;
  3. 由于 App 内用户不一定升级到最新版本,需要有旧版本兼容策略;

目标

能够保证发布的稳定与及时,在充分经过测试与验证的情况再进行发布,且能够在发布后进行还原与恢复。

版本管理规范

流程图示意

分支管理

共分为 5 个分支 开发分支( Trunk )、测试分支(Test)、发布分支( Release )、功能分支( Feature ) 和修复分支( Hotfix )

开发分支( Trunk )

框架性的开发与短期迭代开发

功能分支( Feature )

从 Trunk 分支拉取,用于开发周期较长的功能,开发完成后合并至 Trunk分支,并删除该分支。
分支命名规则:
{版本号}-feature-{功能描述},此类分支用于开发单一的原子性的功能

测试分支(Test)

周三从 Trunk 分支拉取,所有bug 在此分支上进行修复,测试并修复完成后合并至 Release 分支与 Trunk分支,并删除该分支。
分支命名规则:
{版本号}-test,此类分支用于开发单一的原子性的功能

发布分支(Release)

发布分支,线上bug 的发布也需要合并至此分支,每次合并都需要打上相应的 TAG。
分支命名规则:
{版本号}-release,此类分支用于开发单一的原子性的功能

线上修复分支(Hotfix)

分支命名规则: {版本号}-hotfix-{bug描述}

标签管理( TAG )

在创建tag后,如果发现紧急的BUG,可在12小时内删除该tag,通过 修复分支 修复BUG后再行发布,不应该删除任何发布超过12小时的tag
命名规则:
{版本号}

新建分支

涉及到新功能开发时,由产品经理统一建立分支,如 EFOS-ccflow。是否新建分支由该功能开发周期是否长于迭代周期( 一周 )来进行判断。若长过迭代发布周期,则需要新建分支进行开发。

发布

周三新建测试分支( TEST ),发布测试版,由 UI 与 产品 负责功能性测试
周五发布正式分支( RELEASE),发布正式版,有运营主导线上测试。

合并管理

在建立新分支之前,需要对文件结构与程序结构进行定义,避免出现较大的合并冲突,存在共同编辑点时,可以预先沟通,先进行合并再进行开发。

数据库版本管理

每次对数据库的修改,都要建立相应的数据库脚本,并放置到 SVN 管理下的某个目录

权限管理

是否控制到具体的目录?由谁来负责发布?

突发事项处理

临时发布必须上报至 袁总

Q&A

  1. 合并麻烦怎么办?

    多沟通,拉取分支前定义清除,尽量做到原子性开发

  2. 何时提交代码?

    每个工作日结束都得提交编译通过的代码。

资料参考

版权声明: 署名-非商业性使用-禁止演绎 4.0 国际(CC BY-NC-ND 4.0
Copyright ©2013-2017 | 粤ICP备14081691号 | yipeng手工打造 | 联系方式