使用Phabricator进行代码审查
Pharicator 是FB的代码审查工具,主要开发者为Evan Priestley,是一个开源软件,可在Apache许可证第2版下作为自由软件分发。详细信息可查看官方文档。这里从应用的角度,一步一步来谈怎么使用Pharicator进行代码审查。
1.安装
安装分为两部分:服务端和客户端。服务端的这里不介绍了,大家可参考 官方文档 进行操作。
第一步:将Arcanist的源码拷贝到本地。新建一个目录,用于保存源码。然后cd到该目录下,执行如下指令:
- git clone https://github.com/phacility/libphutil.git
- git clone https://github.com/phacility/arcanist.git
第二步:将arc的路径加入到系统路径中。打开第一步下载源码的路径,找到arcanist/bin 目录,pwd 打印一下路径,并复制该路径。执行命令:
- nano ~/.bash_profile
添加复制的路径到PATH中,如下所示:
当然,如果您对环境变量配置很熟悉的话,也可在Finder中打开该文件,直接编辑,不需要通过命令行工具来编辑。
第三步:查看是否安装成功。命令行中输入指令:
- arc help
正确安装和配置后,结果如下图(截图只是一部分内容):
【说明】:如果您什么都是正常操作的,执行上面指令,出现的结果如下所示:
那不妨先试试这个指令:
- source ~/.bash_profile
2.配置
2.1全局配置
配置arc的默认编辑器,例如使用vim:
- arc set-config editor "vim"
配置默认的phabricator的uri(uri为团队的Phabricator主页的url):
- //http://phabricator.example.com为团队主页的URL
- arc set-config default http://phabricator.example.com
2.2项目配置文件
在项目的根目录下建 .arcconfig
配置文件,文件中可填入以下内容:
- {
- "project_id" : "your project name",
- "conduit_uri" : "your phabricator url"
- }
常用配置项如下:
phabricator.uri
: 唯一,Phabricator 安装的网址,本地连接该网址,并传递提交信息上去供审查;repository.callsign
: 在Diffusion
中创建仓库时的callsign;
history.immutable
: 配置arc
是否能修改working copy
的历史。默认情况下,arc可以在git上重写一些没有发布的提交历史;load
: 添加额外的Phutil
库;https.cabundle
: 在使用https时,选择一个https的证书;lint.engine
: 配置项目中 链接规则,使用一个ArcanistLintEngine
的子类;unit.engine
: 配置项目中单元测试的规则,使用一个ArcanistUnitTestEngine
的子类;http.basicauth.user
: 连接到Phabricator
的用户账号;http.basicauth.pass
: 连接的密码;https.blindly-trust-domains
: 使用https时,信任的domain
的列表。
2.3安装证书
当前面步骤执行完成,我们修改代码,执行“arc diff”,有可能出现如下提示信息:
执行按照命令行的提示,执行如下指令:
- arc install-certificate
此命令需要输入token,浏览器打开命令行中提示的URL,复制粘贴token即可。切记使用自己的账号登录。
按照指令提示,完成证书安装,用于Phabricator的认证。
其他更多关于配置的信息,可查看 这篇文章。
3.使用
3.1查看帮助文档
- //加参数 --full 查看所有命令的详细用法,查询具体的命令,可在指令后面接具体的 [COMMAND]
- arc help [--full | [COMMAND]]
- //示例:
- arc help diff
3.2提交审查
cd到项目目录,执行指令:
- arc diff
arc会根据提交信息和hash值等信息来判断在执行arc diff
命令时,是在创建一个 revision
还是在更新一个revision
,当然也可以手动指定:
- arc diff --create # Force "create"
- arc diff --update <revision> # Force "update"
执行“arc diff”指令后,会进入如下页面:
输入“y”,按回车继续,进入下面这个页面:
意思是输入提交信息,填写本次的修改内容,按"a"进入编辑模式,编写完信息之后,按“ESC”键,输入“:wq”退出。退出之后,会进入如下页面:
这里对需要填写的信息做一个解释:
- 开头(最上面):本次修改的详细描述,必填,可以换行(从第一行到Summary行)。
- Summary: 本次修改的简短描述,必填。
- Test Plan: 详细说明测试计划,必填。
- Reviewers: 审查人的账户,多个使用","隔开。可以不填,之后打开Phabricator补上。需要注意的是账户不能包含代码提交者。
- Subscribers:非必填订阅人,多个使用","隔开。
填写完信息,退出之后,进入这个页面:
在浏览器中打开上面的URI,可以看到详细的修改记录,审查人可以查看代码更改情况,进行审查。
审查通过后,可以通过如下指令提交代码到远程分支。
- arc land
如果审核没有通过,命令行会出现如下提示信息:
正常结果返回如下所示:
3.3用户身份
3.3.1审查者
如上图所示,审查者可以进行如下操作:
- Comment:评论。针对某行代码进行评论,直接点击代码行便会弹出
- Accept Revision:接受变更。经过几次Comment沟通后,代码已完善,通过审核
- Request Changes:不行,代码需要继续修改。
- Resign as Reviewer:重新指定审查代码的人。
- Commandeer Revision:字面意思是将这个Revision据为己有的意思,实际上这个时候Reviewer的身份已经变为Owner的身份了,不能再进行Review了,但是Comment还是可以的。
- Add Reviewer:添加审查人。
- Add Subscribers:添加订阅者。
3.3.2被审查者
如上图所示,被审查者可以进行如下操作:
- Comment:评论。针对某行代码进行评论,直接点击代码行便会弹出。
- Abandon Revision:废除版本。废除后,这个版本就不需要再审核了。
- Plan Changes:计划变更,发现了一些问题或者需求变更,正在改。
- Add Reviewer:添加其他审查人。
- Add Subscribe:添加订阅者。
4.修改BUG
比如说当前在master分支:
- git checkout -b fix_abc # 先开 local branch 再修改
- git commit # 产生 commit C1(可以在Tower中操作)
- arc diff master # 送出 code review 请求 D1
- (在 branch fix_abc) arc land 或者是 (arc land --onto master)
- git checkout fix_abc
- ( 修改后 ) git commit --amend # 使用 amend,不要新增 commit
- arc diff master # arc diff 要指定同样的范围,若范围和之前不同,会弄乱 phabricator 的记录。
使用Phabricator进行代码审查的更多相关文章
- 微软、谷歌、亚马逊、Facebook等硅谷大厂91个开源软件盘点(附下载地址)
开源软件中有大量专家构建的代码,大大节省了开发人员的时间和成本,热衷于开源的大厂们总是能够带给我们新的惊喜.2016年9月GitHub报告显示,GitHub已经有超过 520 万的用户和超 30 万的 ...
- Phabricator是什么,代码审查工具
Phabricator是什么? Phabricator支持两种代码审查工作流:"review"(提交前审查)和 "audit"(提交后审查). Phabrica ...
- **代码审查:Phabricator命令行工具Arcanist的基本用法
Phabricator入门手册 http://www.oschina.net/question/191440_125562 Pharicator是FB的代码审查工具,现在我所在的团队也使用它来进行代码 ...
- Phabricator部署手册
参考:https://secure.phabricator.com/book/phabricator/article/installation_guide/ 概述 phabricator,由faceb ...
- Phabricator代码审核Audit用户指南
作者: shaneZhang 分类: 互联网技术 发布时间: 2015-07-04 13:37 概览 Phabricator支持两种代码审查工作流:“review”(提交前审查)和 “audit”(提 ...
- 搭建CodeReivew 工具 Phabricator
简介 现在项目成本投入高了,自然对项目的质量要求也愈来愈高,像发布好还发现明显的 bug,或性能低下这种问题已不能接受. 由于产品的质量和代码质量密切相关,而开发团队里并不是每个人都是大神,大家的经验 ...
- 代码审查的艺术:Dropbox 的故事
Dropbox 的 iOS 应用中的每一行代码,都是开始于被添加到 Maniphest 中的一个 bug 或者功能任务,Maniphest 是我们的任务管理系统.当一位工程师在上面接受一个任务,那么在 ...
- 项目管理/Bug管理/问题管理—Phabricator
项目管理/Bug管理/问题管理-Phabricator 1.项目管理/Bug管理/问题管理工具 2.Phabricator 3.Docker 方式安装Phabricator 3.1Docker方式安装 ...
- 使用stylelint对CSS/Sass做代码审查
对样式审查?很少人会这么做吧,但实际上开发者应该有这样的态度,尤其是不同团队多人开发时,这一点尤为重要. 在本文中,我将陈述两点:一是为什么我们需要对样式进行审查,二是如何将审查工具融合到整体的构建流 ...
随机推荐
- matlab-画一个圆
我们可以用 李萨如图形 的思路去画一个圆,或者一个椭圆. x,y是圆心所在坐标,r是半径,nseg是边缘段数(越高,边缘越顺滑,建议100以上),S是plot的样式设置字符 function Draw ...
- python大法好——模块(内置模块未完)
模块 模块是非常简单的Python文件,单个Python文件就是一个模块,两个文件就是两个模块. Python模块有什么作用? 1.模块内有许多函数方法,利用这些方法可以更简单的完成许多工作.2.模块 ...
- @controller不能被识别
记得controller的类不能起名为Controller,否则不能被识别!!!!!
- 通过adb启动app应用
由于某些原因,我需要自动启动雷电模拟器里面的一个应用.(利用Windows任务计划) 怎么自启动雷电模拟器就不用说了,很简单. 自启动app我倒是不熟悉,我没用安卓方面的知识.再官网论坛上面查到了相关 ...
- PHP对接微信支付采坑
第一次做PHP商城项目对接微信支付接口,踩了N次坑,这也不对,那也不对,搞了很久,查了一些资料,终于实现了支付功能,小小总结一下,万一下次遇到就不用到处找资料了. 微信扫码支付 前期准备: 1.微信公 ...
- LevelDB源码分析-sstable的Block
sstable中的Block(table/block.h table/block.cc table/block_builder.h table/block_builder.cc) sstable中的b ...
- 吴裕雄 python深度学习与实践(13)
import numpy as np import matplotlib.pyplot as plt x_data = np.random.randn(10) print(x_data) y_data ...
- 退出vim编辑器(转)
在linux家族中,vim编辑器是系统自带的文本编辑器,其功能强大自不必说了. 偶有小白,刚接触linux,要修改某个文本文件,不可能像WINDOWS那样操作,更有甚者,进入VI编辑器后,无法退出以致 ...
- echo不换行的实现
1. echo的参数中, -e表示开启转义, /c表示不换行: echo -e "please input a value:/c" 2. -n不换行: echo -n " ...
- 定时任务APScheduler
安装 APScheduler $ pip install apscheduler 快速开始 from apscheduler.schedulers.blocking import BlockingSc ...