Phabricator支持两种代码审查工做流:“review”(提交前审查)和 “audit”(提交后审查)。
php
此文档仅仅针对Linux用户
对于Mac OS X用户,请参照 Arcanist使用手册: Mac OS X
对于Windows用户,请参照 Arcanist使用手册: Windowsgit
1.1 安装以下软件包github
sudo yum install php git
1.2 安装Arcanistweb
$ mkdir somewhere/ $ cd somewhere/ somewhere/ $ git clone https://github.com/phacility/libphutil.git somewhere/ $ git clone https://github.com/phacility/arcanist.git
1.3 修改环境变量vim
$ export PATH="$PATH:/somewhere/arcanist/bin/" $ export EDITOR="/usr/bin/vim"
2、配置项目浏览器
注意:配置项目的详情,请参照 Arcanist使用手册: 配置新项目工具
在项目工做目录下建立配置文件 .arcconfig测试
$ cd yourproject/ yourproject/ $ $EDITOR .arcconfig yourproject/ $ cat .arcconfig { "phabricator.uri" : "https://phab.域名.org/" }
3、安装Arcanist证书ui
在安装Arcanist证书以前,必须具备Phabricator帐号this
$ cd yourproject/ yourproject/ $ arc install-certificate
执行安装证书命令,会看到以下内容
CONNECT Connecting ...
按照提示,在浏览器里输入 http://phab.域名.com/conduit/login/ ,会看到以下内容
获取 API Token
拷贝API token到命令行,若是看到以下内容,代表证书安装成功
SUCCESS
4、配置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$)" } } }
5、提交代码到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审查"的状态。
6、Reviewer审核代码
代码Reviewer能够线下或者经过线上来完成代码审核,审核经过后在Phabricator的"Diff 检阅"里面找到相应的提交,并给出意见,经过或者拒绝。能够设置操做和注解。
7、正式发布代码
代码经过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和其状态
不足之处,欢迎指正!