Phabricator支持两种代码审查工作流:“review”(提交前审查)和 “audit”(提交后审查)。
模式review:提交前审查的使用说明
一、Arcanist 安装注意:
此文档仅仅针对Linux用户
对于Mac OS X用户,请参照 Arcanist使用手册: Mac OS X
对于Windows用户,请参照 Arcanist使用手册: Windows
1.1 安装如下软件包
sudo yum install php git
1.2 安装Arcanist
$ mkdir somewhere/ $ cd somewhere/ somewhere/ $ git clone https://github.com/phacility/libphutil.git somewhere/ $ git clone https://github.com/phacility/arcanist.git
1.3 修改环境变量
$ export PATH="$PATH:/somewhere/arcanist/bin/" $ export EDITOR="/usr/bin/vim"
二、配置项目
注意:配置项目的详情,请参照 Arcanist使用手册: 配置新项目
在项目工作目录下创建配置文件 .arcconfig
$ cd yourproject/ yourproject/ $ $EDITOR .arcconfig yourproject/ $ cat .arcconfig { "phabricator.uri" : "https://phab.域名.org/" }
三、安装Arcanist证书
在安装Arcanist证书之前,必须具有Phabricator账号
$ cd yourproject/ yourproject/ $ arc install-certificate
执行安装证书命令,会看到如下内容
CONNECT Connecting ...
按照提示,在浏览器里输入 http://phab.域名.com/conduit/login/ ,会看到如下内容
获取 API Token
拷贝API token到命令行,如果看到如下内容,表明证书安装成功
SUCCESS
四、配置Lint
注意:Lint的详情,请参照 Arcanist使用手册: Lint
Lint是程序语言检查工具的统称,通常用来分析代码并报出代码中的错误及警告。
可以通过如下命令列出当前支持的Lint。
$ arc linters
根据你项目的需要,在项目工作目录下创建配置文件 .arclint
$ cd yourproject/ yourproject/ $ $EDITOR .arclint yourproject/ $ cat .arclint { "linters": { "merge-conflict": { "type": "merge-conflict" }, "php-syntax": { "type": "php", "include": "(\\.php$)" } } }
五、提交代码到Review状态
注意:arc diff的详情,请参照 Arcanist使用手册: arc diff
如下以将Arcanist配置文件提交到项目为例,输入如下命令提交代码到Review状态
$ arc diff
输入命令,会有2次确认,填y即可。
其间,命令行会提示你输入概述,测试计划,修订人(即你希望的代码reviewer),以及订阅者,内容如下
<<Replace this line with your Revision Title>>
Summary:
Test Plan:
Reviewers:
Subscribers:
# NEW DIFFERENTIAL REVISION
# Describe the changes in this new revision.
忽略#开头的行:
开头: 本次修改的详细描述,必填,可以换行(从第一行到Summary行)。
Summary: 本次修改的简短描述,必填。
Test Plan: 留空,不填。
Reviewers: Reviewer的账号,可填多个。可以不填,之后打开Phabricator补上。
提交成功后,可以在Phabricator的"Diff 检阅"里面看到你的提交处于"等待Reviewer审查"的状态。
六、Reviewer审核代码
代码Reviewer可以线下或者通过线上来完成代码审核,审核通过后在Phabricator的"Diff 检阅"里面找到相应的提交,并给出意见,通过或者拒绝。可以设置操作和注解。
七、正式发布代码
代码通过Review以后,作者可以在Phabricator的"Diff 检阅"里面看到你的提交处于"Ready to Land"的状态。
输入如下命令正式发布代码
$ arc land
日志会显示提交信息,一次成功的提交已经完成了。
Phabricator操作说明
Waiting on Review
Comment #添加说明
Abandon Revison #废弃版本
Plan Changes #改变计划(—>Ready to Update)
Add Reviewers #添加审核人
Add Subscribers #订阅人Ready to Update
Comment #添加说明
Abandon Revison #废弃版本
Request Review #重新请求Review,可添加审核人(->Waiting on Review)
Add Reviewers #添加审核人
Add Subscribers #订阅人Ready to Review
Accept Revison #接受版本 (->Ready to Land)
Request Changes #请求改变 (->Waiting on Authors)
Resign as Reviewer #辞去审核人
Commandeer Revison #角色互换(创建人变更为审核人)
Add Reviewers #添加审核人
Add Subscribers #订阅人Ready to Land
Comment #添加说明
Abandon Revison #废弃版本
Request Review #重新请求Review,可添加审核人(->Waiting on Review)
Plan Changes #改变计划(—>Ready to Update)
Close Revison #关闭版本
Add Reviewers #添加审核人
Add Subscribers #订阅人Waiting on Authors
Comment #添加说明
Accept Revison #接受版本 (->Ready to Land)
Resign as Reviewer #更换审核人
Commandeer Revison #角色互换(创建人变更为审核人)
Add Reviewers #添加审核人
Add Subscribers #订阅人
arc操作说明
arc diff // 提交默认的diff
arc diff xxx --preview // 提交针对某个分支的commit,并只生成diff文件,不在web端创建revision
arc which // 查看arc diff 会提交哪个范围的diff
arc land // 提交代码,删除该分支 or 使用 git push
arc list // 查看有哪些revision和其状态
不足之处,欢迎指正!
来源:oschina
链接:https://my.oschina.net/u/560530/blog/775609