Phabricator是Facebook一个开源可视化的代码审查工具,它集成了一系列开源的Web应用,其中包括审查代码、代码(git/svn)托管、语法检查、单元测试、wiki等功能,还可以bug跟踪,直接做jira与代码review关联,支持两种代码审查工作流:“review”(提交前审查)和 “audit”(提交后审查)。
一、客户端环境安装
1、安装PHP
解开压缩包(见附件),将PHP目录直接放到D:根目录下即可,(Mac中自带PHP,无须安装)
2、安装Arcanist和依赖库libphutil:
将压缩包(见附件)中的arcanist目录直接放到D:根目录下即可。
Mac下进入/Applications,新建arcanist文件夹,进入arcanist目录下,执行下面克隆:
$ git clone git://github.com/facebook/arcanist.git $ git clone git://github.com/facebook/libphutil.git
3、设置环境变量
在系统变量(非用户变量)的Path变量里添加以下两个路径(win7及以下记得中间用;隔开):
D:\PHP D:\arcanist\arcanist\bin
Mac下,运行:
export PATH="$PATH:/Applications/arcanist/arcanist/bin"
4、测试
在系统变量(非用户变量)的Path变量里添加以下两个路径(win7及以下记得中间用;隔开):
$ PHP -v # 测试PHP是否安装成功 $ arc help # 测试arc是否安装成功
二、代码审核工具使用
1、注册账号
浏览器打开Phabricator代码审核url: http://192.168.4.168:8800/,注册一个账号,规则如下:
Phabricator Usernamerequired: gaoyy # 姓全称 + 名字首字母缩写,统一规则便于记住审核人 Real Namerequired: 高圆圆 # 真实中文名全称 Email: gaoyuanyuan@aiyoumi.com # 真实可用的email,用于接收各类审核消息
2、初始化认证
进入项目根目录,如:E:aicai-front,初次运行arc diff,会提示安装证书,根据提示运行:
$ arc install-certificate
根据提示(若未提示相关内容,说明项目下缺少.arcconfig配置文件),打开页面 http://192.168.4.168:8800/con...,登录账户后,拷贝API Token值,回来粘贴提示处,回车完成证书安装。
3、arc相关配置
a.) 项目配置文件
在项目的根目录有个.arcconfig配置文件,可直接配置代码审核url、编辑器等信息,此文件将加入git版本控制,所以无须自己添加。
{ "phabricator.uri" : "http://192.168.4.168:8800/","editor" : "vim" }
b.) 设置arc编辑器
若arc diff 提示未设置编辑器,通过以下方法可以设置:
$ arc set-config editor "vim" # 默认vi做编辑器 # 或 $ arc set-config editor "\"D:\Program Files\Sublime Text\sublime_text.exe\" -w" # 使用sublime text
4、代码审核-preview流程
以下为先审核再提交的preview流程:
a.) 本地提交代码
$ git add . $ git ci -am '* [cps-bk] 提交信息'
b.) 提交审核
运行arc diff,弹出vi编辑窗口里Reviewers项添加审核人,多个审核人中间用逗号隔开,保存退出,生成一个审核url,拷贝发给审核人或让审核人查收邮件,完成审核
$ arc diff
若审核未通过需要修改,或之前忘记了啥,想再修改修改,可以先按步骤a.)本地提交好,然后运行
$ arc diff --update D(n) # 更新之前那条审核,再次发起提交
c.) 审核通过后,运行以下命令完成提交
$ arc land # 已包括git push的动作,所以无需再提交了
5、代码审核-audit流程
以下为先提交再审核的audit流程(跟正常提交流程一样,只需在提交信息换行添加Auditors: xxx字段):
$ git ci ' > * [vue] 提交信息 > > Auditors: xxx > '
或先commit后,再用git ci --amend修改换行添加Auditors: xxx字段。
6、常用命令
$ arc help # 获得arc中包装的可用指令/工具 $ arc diff # 提交代码去审核 $ arc diff --update D(n) # 审核未通过,修改后,再次提交审核 $ arc diff --create # 创建一个新的提交审核 $ arc land # 审核通过后提交,已包括git push的动作,所以无需再push了 $ arc amend # 审核Git更新提交后的信息 $ arc list # 显示未提交修改的代码信息 $ arc lint # 检查代码的语法 $ arc get-config # 查看已设置过的配置 $ arc set-config <key> <value> # 修改配置,使用--local参数为全局配置