Coup de Grace

Arcanist用法简介

这是Phabricator配套的Code Review工具,需要配合本地clt使用.

搜索引擎查了几回合实在不太好找到简洁明了的中文文档,姑且写一下.(这一套工具配起来真的挺糟心的…)

安装

第一种:

brew tap homebrew/php brew install arcanist arc help

第一种方法因为无法执行arc upgrade暂时舍弃.

第二种:

brew install node
npm install -g arcanist
arc help
arc upgrade //Required

注册

执行arc install-certificate http://[host].com:[port]

访问http://[host].com:[port]/conduit/token/
或者http://[host].com:[port]/conduit/login/

遵照terminal提示访问地址(有的同事显示不一样,可能是机器cookie问题)

粘贴token进入terminal

done.

本地配置文件所在位置~/.arcrc

配置

设置用户默认配置arc set-config default http://[host].com:[port]

正常的流程需要在项目根目录新建.arcconfig文件填入相应配置,JSON格式. 可选部分欢迎查看这里

{
  "phabricator.uri" : "http://[host].com:[port]",
  "project_id" : "[ID]"
}

不添加这个而文件也可以,不过功能有很多限制:

流程

本部分来自arcanist

  1. git checkout -b feature_xxx — 创建一个新分支,并修改代码
  2. git add . && git commit -m tt — 将该提交的都提交上去
  3. arc diff [last_commit]
    • 此命令会将 last_commit 到最新的 commit 之间的改动的所有代码发送到 phabricator 平台,并创建一个 revision;
    • 如果没有指定 last_commit,则会使用 master 分支来作为 last_commit 的起点。
    • 运行命令后会弹出一个编辑面板,在此面板中你需要指定 reviewers,即指定一个或多个给你 review code 的人
    • 如果指定了多个 reviewers,则其中任何一个 review 通过就可以,不用全部 review 通过
    • 另外编辑面板中也有一个 test plan 选项,国外人一般每个项目都有测试,所以此项是必填的,如果没有测试,我们只需要随便设置一个字段即可,比如设置成 noskip
    • 如果觉得指派reviewer的用法不太方便,可以执行arc diff --preview根据生成的diff页面进入配置,生成revision.
  4. 以上操作之后,系统会发送邮件通知 reviewers 去 review 你的代码,你也可以通过 arc list 来查看当前 review 的状态
  5. 后续
    • 如果 review 没有通过,你需要在原来的基础上修改,修改完并 commit 之后需要执行 arc diff [last_commit] --update D(id) 继续 review
    • 如果 review 通过了,只需要运行 arc land --onto some_branch, arc 会将你当前分支合并到 master 上,并删除当前分支

更多详情可以查看英文文档

done.