[Phabricator] 代码审查工具
Contents
Phabricator是Facebook开源的一个可视化的代码审查工具
安装
|
|
arc执行文件路径加载到系统路径并加载
|
|
配置
在项目根目录下新建.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的列表。
常用命令
arc diff master --update D***** # 提交跟某个分支的diff到已有的diff版本中
arc diff # 提交默认的diff
arc diff xxx --preview # 提交针对某个分支的commit,并只生成diff文件,不在web端创建revision
arc which # 查看arc diff 会提交哪个范围的diff
arc land # 提交代码,删除该分支 or 使用 git push
arc list # 查看有哪些revision和其状态
arc diff --create # Force "create"
arc diff --update <revision> # Force "update"
提交输入信息
- 开头(最上面):本次修改的详细描述,必填,可以换行(从第一行到Summary行)。
- Summary: 本次修改的简短描述,必填。
- Test Plan: 详细说明测试计划,必填。
- Reviewers: 审查人的账户,多个使用”,“隔开。可以不填,之后打开Phabricator补上。需要注意的是账户不能包含代码提交者。
- Subscribers:非必填订阅人,多个使用”,“隔开。
审查者操作
- Comment:评论。针对某行代码进行评论,直接点击代码行便会弹出
- Accept Revision:接受变更。经过几次Comment沟通后,代码已完善,通过审核
- Request Changes:不行,代码需要继续修改。
- Resign as Reviewer:重新指定审查代码的人。
- Commandeer Revision:字面意思是将这个Revision据为己有的意思,实际上这个时候Reviewer的身份已经变为Owner的身份了,不能再进行Review了,但是Comment还是可以的。
- Add Reviewer:添加审查人。
- Add Subscribers:添加订阅者。
被审查者操作
- Comment:评论。针对某行代码进行评论,直接点击代码行便会弹出。
- Abandon Revision:废除版本。废除后,这个版本就不需要再审核了。
- Plan Changes:计划变更,发现了一些问题或者需求变更,正在改。
- Add Reviewer:添加其他审查人。
- Add Subscribe:添加订阅者。
示例
比如说当前在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)
提交之后,可以切回master分支做别的事情,要land前需要先切回fix_abc。
如果review有修改,需要更新commit:
- git checkout fix_abc
- ( 修改后 ) git commit –amend # 使用 amend,不要新增 commit
- arc diff master # arc diff 要指定同样的范围,若范围和之前不同,会弄乱 phabricator 的记录。