Facebook代码审核工具Phabricator使用指南

Phabricator支持两种代码审查工做流:“review”(提交前审查)和 “audit”(提交后审查)。
 php

模式review:提交前审查的使用说明

 

1、Arcanist 安装注意:

此文档仅仅针对Linux用户
对于Mac OS X用户,请参照 Arcanist使用手册: Mac OS X
对于Windows用户,请参照 Arcanist使用手册: Windowsgit

1.1 安装以下软件包github

sudo yum install php git

1.2 安装Arcanistweb

$ mkdir somewhere/
$ cd somewhere/
somewhere/ $ git clone https://github.com/phacility/libphutil.git
somewhere/ $ git clone https://github.com/phacility/arcanist.git

1.3 修改环境变量vim

$ export PATH="$PATH:/somewhere/arcanist/bin/"
$ export EDITOR="/usr/bin/vim"

2、配置项目浏览器

注意:配置项目的详情,请参照 Arcanist使用手册: 配置新项目工具

在项目工做目录下建立配置文件 .arcconfig测试

$ cd yourproject/
yourproject/ $ $EDITOR .arcconfig
yourproject/ $ cat .arcconfig
{
  "phabricator.uri" : "https://phab.域名.org/"
}

3、安装Arcanist证书ui

在安装Arcanist证书以前,必须具备Phabricator帐号this

$ cd yourproject/
yourproject/ $ arc install-certificate

执行安装证书命令,会看到以下内容

CONNECT Connecting ...

 

按照提示,在浏览器里输入 http://phab.域名.com/conduit/login/ ,会看到以下内容

获取 API Token

 

拷贝API token到命令行,若是看到以下内容,代表证书安装成功

SUCCESS

 

4、配置Lint

注意:Lint的详情,请参照 Arcanist使用手册: Lint

Lint是程序语言检查工具的统称,一般用来分析代码并报出代码中的错误及警告。

能够经过以下命令列出当前支持的Lint。

$ arc linters

根据你项目的须要,在项目工做目录下建立配置文件 .arclint

$ cd yourproject/
yourproject/ $ $EDITOR .arclint
yourproject/ $ cat .arclint
{
    "linters": {
        "merge-conflict": {
            "type": "merge-conflict"
        },
        "php-syntax": {
            "type": "php",
            "include": "(\\.php$)"
        }
    }
}

5、提交代码到Review状态

注意:arc diff的详情,请参照 Arcanist使用手册: arc diff

以下以将Arcanist配置文件提交到项目为例,输入以下命令提交代码到Review状态

$ arc diff

输入命令,会有2次确认,填y便可。

其间,命令行会提示你输入概述,测试计划,修订人(即你但愿的代码reviewer),以及订阅者,内容以下

<<Replace this line with your Revision Title>>       
Summary:   
Test Plan:   
Reviewers:   
Subscribers:    
# NEW DIFFERENTIAL REVISION    
# Describe the changes in this new revision.        

忽略#开头的行:       
开头: 本次修改的详细描述,必填,能够换行(从第一行到Summary行)。    
Summary: 本次修改的简短描述,必填。    
Test Plan: 留空,不填。     
Reviewers: Reviewer的帐号,可填多个。能够不填,以后打开Phabricator补上。

 

提交成功后,能够在Phabricator的"Diff 检阅"里面看到你的提交处于"等待Reviewer审查"的状态。

 

6、Reviewer审核代码
代码Reviewer能够线下或者经过线上来完成代码审核,审核经过后在Phabricator的"Diff 检阅"里面找到相应的提交,并给出意见,经过或者拒绝。能够设置操做和注解。

 

7、正式发布代码
代码经过Review之后,做者能够在Phabricator的"Diff 检阅"里面看到你的提交处于"Ready to Land"的状态。

 

输入以下命令正式发布代码

$ arc land

日志会显示提交信息,一次成功的提交已经完成了。

 

Phabricator操做说明

Waiting on Review
    Comment                #添加说明
    Abandon Revison     #废弃版本
    Plan Changes          #改变计划(—>Ready to Update)
    Add Reviewers         #添加审核人
    Add Subscribers      #订阅人

Ready to Update
    Comment                #添加说明
    Abandon Revison     #废弃版本
    Request Review       #从新请求Review,可添加审核人(->Waiting on Review)
    Add Reviewers         #添加审核人
    Add Subscribers       #订阅人

Ready to Review
    Accept Revison           #接受版本 (->Ready to Land)
    Request Changes        #请求改变 (->Waiting on Authors)
    Resign as Reviewer     #辞去审核人
    Commandeer Revison  #角色互换(建立人变动为审核人)
    Add Reviewers            #添加审核人
    Add Subscribers          #订阅人

Ready to Land
    Comment                 #添加说明
    Abandon Revison       #废弃版本
    Request Review        #从新请求Review,可添加审核人(->Waiting on Review)
    Plan Changes           #改变计划(—>Ready to Update)
    Close Revison          #关闭版本
    Add Reviewers         #添加审核人
    Add Subscribers       #订阅人

Waiting on Authors
    Comment                   #添加说明
    Accept Revison           #接受版本 (->Ready to Land)
    Resign as Reviewer     #更换审核人
    Commandeer Revison  #角色互换(建立人变动为审核人)
    Add Reviewers            #添加审核人
    Add Subscribers          #订阅人

arc操做说明

arc diff                       // 提交默认的diff
arc diff xxx --preview  // 提交针对某个分支的commit,并只生成diff文件,不在web端建立revision
arc which                   // 查看arc diff 会提交哪一个范围的diff
arc land                     // 提交代码,删除该分支 or 使用 git push
arc list                      // 查看有哪些revision和其状态

 

不足之处,欢迎指正!

相关文章
相关标签/搜索