在Phabricator中创建Code Review任务

Phabricator集成了众多有用的软件开发的工具,现在为止只在Team中试验了用Differential做code review和用Diffusion查看代码。Phabricator提供了一个CLI工具Arcanist, 可以用命令行操作大多数phabricator功能。Phabricator推荐用户使用Arcanist创建和管理revision (在Differential中,每一个code review任务被称作一个revision),当然用户可以完全可以使用web客户端,手动创建revision。

下面简要介绍下两种操作方式,所有操作都是在linux下,以svn为例。

##使用arcanist创建revision

###在linux下的安装arcanist

####1. 安装PHP和Git

unbuntu:

1
sudo apt-get install php5 php5-curl git

fedora:

1
sudo yum install php git

####2. 下载libphutil 和arcanist

1
2
3
4
$ mkdir somewhere/
$ cd somewhere/
somewhere/ $ git clone https://github.com/facebook/libphutil.git
somewhere/ $ git clone https://github.com/facebook/arcanist.git

####3. 把arcanist/bin/加入PATH

1
$ export PATH="$PATH:/somewhere/arcanist/bin/"

或者建立一个软连接到可执行目录

1
$ sudo ln -s somewhere/arcanist/bin/arc /usr/local/bin/arc

###配置Project

####1.在Project 目录下创建.arcconfig 文件

1
2
3
4
5
6
7
$ cd yourproject/
yourproject/ $ $EDITOR .arcconfig
yourproject/ $ cat .arcconfig
{
"project_id" : "yourprojectname",
"conduit_uri" : "http://10.140.115.163/"
}

####2. 配置Credentials

1
2
3
$ cd yourproject/
yourproject/ $ arc install-certificate
...

按照命令行提示用浏览器打开链接,使用Phabricator用户名密码登录,在命令行输入网页上提示的token, 完成验证

###使用arcanist 提交review diff

1
2
3
$ cd yourproject/
yourproject/ $ arc diff [paths]
...

手动创建revision

####使用svn diff 产生patch

设置源文件上下文长度

1
svn diff --diff-cmd=diff --extensions '-U 100' > review.diff

####上传diff文件到Phabricator

在differential中,点击右上角Create Diff