使用Phabricator做Code Review的介绍

更新时间:2024-02-26 21:47:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

使用Phabricator做Code Review的介绍

Haiyong Lei

1

Phabricator的安装 1.1 下载Phabricator

在安装目录/opt/codereview下运行:

git clone https://github.com/phacility/libphutil.git git clone https://github.com/phacility/arcanist.git git clone https://github.com/phacility/phabricator.git sudo ./phabricator/scripts/install/install_ubuntu.sh

1.2 配置storage 在安装目录/opt/codereview/phabricator下运行

sudo ./bin/config set mysql.host localhost sudo ./bin/config set mysql.user root sudo ./bin/storage upgrade

sudo ./bin/config set mysql.pass 123456

// mysql主机地址 // mysql用户名 // mysql用户密码

若从本机登入MySQL遇到Access denied for user 'root'@'localhost'问题,运行:

mysql -u root -p -h 127.0.0.1

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; 进入MySQL shell后,输入:

1.3

配置Apache2

1.3.1 site配置文件:

新建/etc/apache2/sites-available/phabircator文件:

RewriteEngine on

RewriteRule ^/rsrc/(.*) - [L,QSA] RewriteRule ^/favicon.ico - [L,QSA] RewriteRule ^(.*)$ /index.php?__path__=$1 [B,L,QSA] # Change this to the path where you put 'phabricator' when you checked it # out from GitHub when following the Installation Guide. #

# Make sure you include \DocumentRoot /opt/codereview/phabricator/webroot # Change this to the domain which points to your host. ServerName localhost

#Require all granted //手册里有这一行,删除

1.3.2 可选,修改/etc/apache2/http.conf:

添加一行:

ServerName localhost

1.3.3 运行apache2:

sudo a2dissite default sudo a2ensite phabricator sudo /etc/init.d/apache2 restart

1.4

用浏览器测试

用浏览器打开http://192.168.xxx.xxx/测试,可以看到admin用户注册界面,注册一个admin用户用以完成后续设置。注意不要在浏览器地址栏输入localhost测试,Phabricator不支持后一地址。

1.5

a)

b) c) d) e) f)

Post-install设置

Set Base Uri:

sudo ./bin/config set phabricator.base-uri 'http://192.168.xxx.xxx/'

Set Repo Dir:

sudo mkdir -p /var/repo sudo chmod a+w /var/repo

Start Phd Daemon: sudo ./bin/phd start

注:每次修改Phabricator配置,都会要求重启Phd。 sudo ./bin/phd restart Stop Phd:

sudo ./bin/phd stop

Pygmentize:

sudo apt-get install python-pygments

登入Phabricator:

登入admin用户后,根据Phabricator给出的提示,fix其余setup issues。

Add Auth Provider:

登入admin用户后,在Auth > Auth Provides 菜单下,点击 Add Provider按钮, 启用

\模块,否则外部无法访问Phabricator。

2

配置Diffusion模块

在Config > Applications Configuration菜单下,修改Diffusion选项:

(暂无修改)

3

配置Differential模块

在Config > Applications Configuration菜单下,修改Differential选项:

require-test-plan-field allow-reopen

allow-self-accept

// 是否检查有无Test Plan,设为false。 // 允许重开

// 允许patch owner自我批准

4

添加代码库

在Diffusion里可添加外部git/svn/hg代码库。代码库同步功能需要Phd服务运行:

注:code review是Differential的功能,不依赖与Diffusion的代码库。

代码库添加成功后,Phabricator需要几分钟时间同步,完成后可以直接浏览代码库内容。代码库host在Phabricator里,暂未研究。

sudo ./bin/phd start

5

arc安装和使用

5.1 ubuntu下安装:

安装PHP5:

安装 svn或git:

下载arc到本地:

添加arc的path:

PATH=$PATH:/opt/codereview/arcanist/bin export PATH

git clone https://github.com/phacility/libphutil.git git clone https://github.com/phacility/arcanist.git sudo apt-get install subversion sudo apt-get install git sudo apt-get install php5

5.2 windows下安装:

安装TortoiseSVN或GitForWindows:

http://tortoisesvn.net/

https://git-for-windows.github.io/

注: TortoiseSVN要装command line tools选装项。

安装PHP5 for Windows:

下载arc到本地:

设置PATH环境变量使得php5、arc和svn能从命令行访问;设置EDITOR环境变量指向偏

git clone https://github.com/phacility/libphutil.git git clone https://github.com/phacility/arcanist.git http://windows.php.net/download/

爱的编辑器,比如notepad.exe。

5.3

验证安装:

运行arc help确认无误。

5.4

arc基本命令:

arc install-certificate arc diff

arc diff --update Dnnn arc commit arc list

arc close-revision Dnnn

// 配置token

// 提交patch到Phabricatior,得到Revision ID // 提交修改后的patch, Dnnn是Revision ID // 合入patch 到SVN并关闭Phabricatior上的 // 关闭Phabricatior上这个patch对应的Revision ID // 列出本地working Revision ID

6

Review流程、

本流程参考自FreeBSD.org的Code Review流程。

6.1

a)

b)

Setup

创建帐号

浏览器中打开Phabricator,按提示创建一个普通用户帐号,等admin审批通过后即可使用。

安装token:

arc install-certificate 输入后,arc将会提示:

C:\\Users\\Haiyong>arc install-certificate http://192.168.68.135 Trying to connect to server... LOGIN TO PHABRICATOR

Open this page in your browser and login to Phabricator if necessary:

http://192.168.68.135/conduit/login/

Then paste the API Token on that page below.

Paste API Token from that page: cli-hv44cg7bi7jthlbfsazemfi7xqen Writing ~/.arcrc...

SUCCESS! API Token installed.

c)

用创建的账号登入Phabricator, 打开提示中给出http:///conduit/login/页面,拷贝其中token到命令行即可。

arc set-config default

设置默认服务器地址

6.2 Review流程

本流程参考自FreeBSD.org的Code Review流程。

图:Review流程

第一步,提交你的patch:

准备 本地 代码 修改 提交 arc diff --create arc diff --update 通知 Review Reject Accept 合入 svn commit 关闭 arc close-revision

完成本地修改之后,提交你的patch到Phabricator,命令如下: arc diff

注:提交到Phabricator而非svn代码库,此时svn代码库不受任何影响。

类似svn commit命令,arc diff会打开指定编辑器,要求你输入comment:

<>

Summary: Test Plan: Reviewers: Subscribers:

# NEW DIFFERENTIAL REVISION

# Describe the changes in this new revision.

忽略#开头的行:

如果成功,arc会给出本次提交的Revision ID用于后续引用。Revision ID以D+数字的

Created a new Differential revision:

Revision URI: http://192.168.68.135/D5

开头: 本次修改的详细描述,必填,可以换行(从第一行到Summary行)。 Summary: 本次修改的简短描述,必填。 Test Plan: 留空,不填。

Reviewers: Reviewer的账号,可填多个。可以不填,之后打开Phabricator补上。 Subscribers: 订阅者的账号,可选。

形似表示,如:D1234。

第二步,通知Reviewer:

第三步,Review发现问题:

Reviewer如果发现一些问题,提出修改建议。提交者再次修改代码,重新提交到同一

arc diff --update Dnnn

注:必须使用开头提交时给的Revision ID。

如果第一步没有填写reviewer,现在可以打开Phabricator修改你的提交,添加reviewer。

Phabricator会邮件通知reviewer有新的提交。

个Revision ID,命令如下:

所有Reviewer认可你的patch之后,patch允许被合入代码库并关闭:

svn commit

第四步,Review通过:

注: 此命令是svn命令非arc命令

arc close-revision Dnnn

注:此命令在Phabricator里完结本次提交。

注:arc commit可以取代以上两步操作,但是arc commit无法让用户修改commit comment所以

不推荐使用。

7

Audit流程

在Phabricator中,Audit定义为post-commit流程。

(暂无使用)

8

参考文档

1. Phabricator User Documentation - https://secure.phabricator.com/book/phabricator/ 2. Phabricator入门手册 - http://www.oschina.net/question/191440_125562 3. FreeBSD Code Review - https://wiki.freebsd.org/CodeReview

4. 有人实践过 Phabricator 以及 Arcanist 作为 code review 的工具么?- http://www.zhihu.com/question/19977889

本文来源:https://www.bwwdw.com/article/qgna.html

Top