1. 准备软件

目前发现arcanist-master.zip和libphutil-master.zip版本在RedHat 6.2上不可用。

2. 安装

解压缩arcanist-master.zip和libphutil-master.zip

后者改名libphutil拷贝到arcanist-master/externals/includes/下

将arcanist-master拷贝至根目录

snippet.bash
unzip arcanist-master.zip
unzip libphutil-master.zip
mv libphutil-master arcanist-master/externals/includes/libphutil
mv arcanist-master /

安装php扩展包

snippet.bash
rpm -ivh php-common-5.3.3-26.el6.x86_64.rpm --force
rpm -ivh php-mbstring-5.3.3-26.el6.x86_64.rpm

3. 配置

将/arcanist-master/bin加入自己的PATH

snippet.bash
echo export PATH=/arcanist-master/bin:\$PATH >> ~/.bash_profile

配置arc使用的编辑器

snippet.bash
arc set-config editor 'vim'

配置Phabricator的地址

snippet.bash
arc set-config default 'http://192.168.151.252'

4. 配置arc与源码集成

准备源码,比如trunk

snippet.bash
mkdir trunk
cd trunk
svn co http://192.168.103.148:18080/svn/repos_GBase8a_IB/GBase8a_IB/trunk/code/server .

在源码根目录trunk创建 .arcconfig 文件

snippet.bash
cd trunk
vim .arcconfig
{
"repository.callsign" : "rT",
"lint.engine":"",
"unit.engint":""
}

目前phabricator服务器上,rT代表8611 trunk分支,rC代表8512 11.5分支,用户根据自己的分支确定 写什么。

在源码根目录安装证书

snippet.bash
cd trunk
arc install-certificate

根据提示信息,用浏览器打开它提供的URL,获取一个字串,复制粘贴回来,回车,证书安装完毕。

5. 开发

修改代码,在源码根目录 提交CodeReview

snippet.bash
cd trunk
arc diff --encoding GBK

根据提示操作,就可以将本地更改提交到phabricator,形成一个CodeReview。

浏览器登陆http://192.168.151.252,既可以看到刚提交的CodeReview。

5.使用Phabricato进行Code Review

初次Review

前期安装的arcanist-master在提交代码时错误,错误摘要:
ERROR 8: Undefined index: Repository UUID at …

无法提交。
重新安装arcanist-stable版本,仍然有提示ERROR,但是可以提交成功。提交命令:

snippet.bash
arc diff --encoding GBK

img

arc提交时的commit message范例:

rm: #28043 算子耗时统计并Tace到.trc文件 Summary:细化算子耗时统计,并Tace到.trc文件。 Test Plan:null Reviewers:zhangnan Subscribers:

提交成功后,到Phabricator Web页面可以查询到提交记录,注意记录号“D349”,这个是本Review的跟踪记录号。

img

更新Review

根据review建议修改代码,并更新review。

snippet.bash
arc diff --update D349 --encoding GBK

提交SVN

review结果为Accepted状态后,需要提交代码到SVN,并关闭review。使用arcnist提交代码将自动关闭review。

snippet.bash
arc commit --revision D349

也可以直接使用SVN直接提交代码。