基于 Phabricator 的 Git Flow 最佳实践
文章目录
Phabricator : Facebook 出品的一个开发协作平台,可以方便的进行任务的指派、code review 等。
Git Flow: 基于git,适用于客户端的开发,围绕着版本发布(release)为基础的一套工作流。
Arcanist: Phabricator 提供的 differential(code review)命令行工具。
Phabricator 本身使用的是 post-review 的工作流,对于 Git Flow 并没有很好的支持。想要在Phabricator 上实现 Git Flow 需要做一些配置。另外,使用 arc land 合并代码时会将本地的分支直接删除,所以在实现 Git Flow 时我们会需要一些额外的 git 操作。
配置工程文件
在工程的文件夹下创建文件 .arcconfig,添加配置
{
    "phabricator.uri" : "https://phabricator.example.com/",
    "base": "git:merge-base(origin/develop), arc:prompt",
    "arc.land.onto.default": "develop"
}
因为 Git Flow 的默认分支应该是develop,所以我们需要调整arc diff和arc land的默认分支为develop
Feature 开发
功能开发可以使用正常的Git Flow流程。
- 基于 develop检出feature分支
- 完成开发之后使用 arc diff提交 code review
- code review 之后使用 arc land合并代码至develop
Release 开发
Release 基于 develop ,但是最终必须合并到 master 分支上,所以除了在命令行里使用 arc 外还要手动操作 git。
- 基于 develop检出release分支
- 开发完成之后使用 arc diff提交 code review
- code review 并且 测试完成 之后使用 arc land合并代码至develop
- 使用 git将develop分支合并到master,基于合并的commit添加 Tag
Hotfix 开发
Hotfix 是基于 master 分支的修复分支。
- 基于 master(上一个发布版本)检出hotfix分支
- 开发完成之后使用 arc diff master提交 code review (此时 diff 的内容为hotfix和master分支)
- code review 并且 测试完成 之后使用 arc land --onto master合并代码至master
- 在合并的 commit上添加 Tag
- 将 master合并到develop分支
Phabricator 提供了完善的 code review 流程,我们只需要基于这一流程略加修改就可以在项目中实现Git Flow 了。
文章作者 Dio.Ye
上次更新 2017-09-16