分支策略——TBD Workflow(五)

分支分类

分支主要分为两大类:

  • main分支
  • supporting分支

Main分支

分为两类:

  • master分支:master(trunk)
  • release分支:sdk_vx.y_release

Supporting分支

只有一类,Gitlab以feature分支作为提交的基本单位

  • feature分支

分支命名规范

master分支

master

release分支

sdk_{version_id}_release

version_id为发布版本号

例:

sdk_v1.2_release

feature分支

feature/{jira_id}/{description}

例:

feature/GESWITCH-333/add_gpio_driver

Tag命名规范

Maintainer在开发的合适阶段在master分支和release分支上打tag。

Release branch Tag

当release分支上的feature全都开发完毕要进入到release candidate 测试阶段(rc测试),打上tag: sdk_{version_id}

例:

sdk_v1.2

RC 测试tag

在release分支上合并修复patch后需要打tag:sdk_{version_id}-rcx

rcx代表第几轮rc测试

例:

sdk_v1.2-rc3
sdk_v1.2.3-rc2

分支关系

  1. master分支
  • 为开发的主干分支
  • 所有开发工作提交到次分支
  • 由Maintainer创建
  1. release分支
  • 为发布分支
  • 提交bugfix(或者feature(尽量少这么做))到此分支
  • 如果bugfix(或者feature)在master分支上也需要的话应该首先提交到master分支,再cherry-pick到release分支。(以免master上遗漏这些patch)
  • 一般从master分支的某个tag处检出(着急的话直接检出,譬如当前版本的feature未开发完,又需要开发下一个版本),或者也可以从其他release分支上检出
  • 由Maintainer创建
  1. feature分支
  • 为提交的基本单元
  • 从master分支上检出,合并入master
  • 从release分支上检出,合并入release分支

分支、Tag权限

为了防止错误的提交覆盖提交历史,规定所有的remote端创建的分支都开启protected权限,所有提交只能以feature branch的形式,请求merge request。任何直接提交到remote branch上的push请求都会被拒绝。

Maintainer权限职责

  • 创建master分支、release分支
  • 合并feature分支
  • 给master分支和release分支打tag
  • 删除feature分支
  • 更新版本ChangeLog(进入release阶段后和热修复后)和VERSION(进入release阶段后)文件

Developer权限职责

  • 创建local feature分支
  • push feature分支到Gitlab仓库
  • 发起merge request
  • 删除自己push的feature分支

Reviewer权限职责

  • 评审feature代码
  • 测试feature代码
  • 通知Maintainer合并请求

Tester权限职责

  • 测试Release分支上的项目
  • 反馈Bug给Developer

分支禁止操作

  • 禁止删除master分支、release candidate分支
  • 禁止直接push提交到Gitlab,所有合并请求都应以feature branch的形式push
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值