使用Phabricator进行代码审查

摘要:
Pharicator是FB的代码审查工具。主要开发者是EvanPriestley。Pharicator是一个开源软件,可以作为第二版Apache许可证下的免费软件分发。详见官方文件。从应用程序的角度来看,我们将逐步讨论如何使用Pharicator进行代码审查。1.安装分为两部分:服务器和客户端。这里不介绍服务器。您可以参考官方文件进行操作。步骤1:设置奥术师的来源
使用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中,如下所示:
img

当然,如果您对环境变量配置很熟悉的话,也可在Finder中打开该文件,直接编辑,不需要通过命令行工具来编辑。

第三步:查看是否安装成功。命令行中输入指令:

arc help

正确安装和配置后,结果如下图(截图只是一部分内容):

img

【说明】:如果您什么都是正常操作的,执行上面指令,出现的结果如下所示:

img

那不妨先试试这个指令:

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”,有可能出现如下提示信息:

img

执行按照命令行的提示,执行如下指令:

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”指令后,会进入如下页面:

img

输入“y”,按回车继续,进入下面这个页面:

img

意思是输入提交信息,填写本次的修改内容,按"a"进入编辑模式,编写完信息之后,按“ESC”键,输入“:wq”退出。退出之后,会进入如下页面:

img

这里对需要填写的信息做一个解释:

  • 开头(最上面):本次修改的详细描述,必填,可以换行(从第一行到Summary行)。
  • Summary: 本次修改的简短描述,必填。
  • Test Plan: 详细说明测试计划,必填。
  • Reviewers: 审查人的账户,多个使用","隔开。可以不填,之后打开Phabricator补上。需要注意的是账户不能包含代码提交者
  • Subscribers:非必填订阅人,多个使用","隔开。

填写完信息,退出之后,进入这个页面:

img

在浏览器中打开上面的URI,可以看到详细的修改记录,审查人可以查看代码更改情况,进行审查。

审查通过后,可以通过如下指令提交代码到远程分支。

arc land

如果审核没有通过,命令行会出现如下提示信息:

img

正常结果返回如下所示:

img

3.3用户身份

3.3.1审查者

img

如上图所示,审查者可以进行如下操作:

  1. Comment:评论。针对某行代码进行评论,直接点击代码行便会弹出
  2. Accept Revision:接受变更。经过几次Comment沟通后,代码已完善,通过审核
  3. Request Changes:不行,代码需要继续修改。
  4. Resign as Reviewer:重新指定审查代码的人。
  5. Commandeer Revision:字面意思是将这个Revision据为己有的意思,实际上这个时候Reviewer的身份已经变为Owner的身份了,不能再进行Review了,但是Comment还是可以的。
  6. Add Reviewer:添加审查人。
  7. Add Subscribers:添加订阅者。

3.3.2被审查者

img

如上图所示,被审查者可以进行如下操作:

  1. Comment:评论。针对某行代码进行评论,直接点击代码行便会弹出。
  2. Abandon Revision:废除版本。废除后,这个版本就不需要再审核了。
  3. Plan Changes:计划变更,发现了一些问题或者需求变更,正在改。
  4. Add Reviewer:添加其他审查人。
  5. 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)

提交之后,可以切回master分支做别的事情,要land前需要先切回fix_abc。

如果review有修改,需要更新commit:

  • git checkout fix_abc

  • ( 修改后 ) git commit --amend # 使用 amend,不要新增 commit

  • arc diff master # arc diff 要指定同样的范围,若范围和之前不同,会弄乱 phabricator 的记录。

    文章转载:https://www.cnblogs.com/LeeGof/p/7116757.html

    ------------恢复内容开始------------

使用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中,如下所示:
img

当然,如果您对环境变量配置很熟悉的话,也可在Finder中打开该文件,直接编辑,不需要通过命令行工具来编辑。

第三步:查看是否安装成功。命令行中输入指令:

arc help

正确安装和配置后,结果如下图(截图只是一部分内容):

img

【说明】:如果您什么都是正常操作的,执行上面指令,出现的结果如下所示:

img

那不妨先试试这个指令:

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”,有可能出现如下提示信息:

img

执行按照命令行的提示,执行如下指令:

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”指令后,会进入如下页面:

img

输入“y”,按回车继续,进入下面这个页面:

img

意思是输入提交信息,填写本次的修改内容,按"a"进入编辑模式,编写完信息之后,按“ESC”键,输入“:wq”退出。退出之后,会进入如下页面:

img

这里对需要填写的信息做一个解释:

  • 开头(最上面):本次修改的详细描述,必填,可以换行(从第一行到Summary行)。
  • Summary: 本次修改的简短描述,必填。
  • Test Plan: 详细说明测试计划,必填。
  • Reviewers: 审查人的账户,多个使用","隔开。可以不填,之后打开Phabricator补上。需要注意的是账户不能包含代码提交者
  • Subscribers:非必填订阅人,多个使用","隔开。

填写完信息,退出之后,进入这个页面:

img

在浏览器中打开上面的URI,可以看到详细的修改记录,审查人可以查看代码更改情况,进行审查。

审查通过后,可以通过如下指令提交代码到远程分支。

arc land

如果审核没有通过,命令行会出现如下提示信息:

img

正常结果返回如下所示:

img

3.3用户身份

3.3.1审查者

img

如上图所示,审查者可以进行如下操作:

  1. Comment:评论。针对某行代码进行评论,直接点击代码行便会弹出
  2. Accept Revision:接受变更。经过几次Comment沟通后,代码已完善,通过审核
  3. Request Changes:不行,代码需要继续修改。
  4. Resign as Reviewer:重新指定审查代码的人。
  5. Commandeer Revision:字面意思是将这个Revision据为己有的意思,实际上这个时候Reviewer的身份已经变为Owner的身份了,不能再进行Review了,但是Comment还是可以的。
  6. Add Reviewer:添加审查人。
  7. Add Subscribers:添加订阅者。

3.3.2被审查者

img

如上图所示,被审查者可以进行如下操作:

  1. Comment:评论。针对某行代码进行评论,直接点击代码行便会弹出。
  2. Abandon Revision:废除版本。废除后,这个版本就不需要再审核了。
  3. Plan Changes:计划变更,发现了一些问题或者需求变更,正在改。
  4. Add Reviewer:添加其他审查人。
  5. 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)

提交之后,可以切回master分支做别的事情,要land前需要先切回fix_abc。

如果review有修改,需要更新commit:

  • git checkout fix_abc

  • ( 修改后 ) git commit --amend # 使用 amend,不要新增 commit

  • arc diff master # arc diff 要指定同样的范围,若范围和之前不同,会弄乱 phabricator 的记录。

    文章转载:https://www.cnblogs.com/LeeGof/p/7116757.html


    ------------恢复内容结束------------

免责声明:文章转载自《使用Phabricator进行代码审查》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇dubbo(2.5.3)源码之服务消费为什么要使用短链接下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

安装Manjaro KDE 18.04

Manjaro 官网:https://www.manjaro.org/ 各版本ISO下载:https://www.manjaro.org/download/ XFCE,KDE和GNOME为旗舰版 同时满足这四个选项的只有XFCE、KDE这两个版本,这算是我选择KDE的一个原因吧 安装过程和Ubuntu的安装基本类似 !所以可以参考:记 Win10 +...

Debian9.5 VNC Server远程桌面配置

VNC概述VNC (Virtual Network Console)是虚拟网络控制台的缩写。VNC 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。VNC 是在基于 UNIX 和 Linux操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 Windows 或 MAC中的任何远程控制软件媲美。在 Linux...

ShopXo框架去掉绑定商店的提示

ShopXo框架如何去掉绑定商店的提示? 第一步:下载框架代码(下载地址:https://doc.shopxo.net/article/1/260667682158804992.html) 第二步:下载phpstudy(PHP开发集成环境https://www.xp.cn/linux.html)。 特别提醒:正式服务器最好别使用phpstudy,本人在L...

PTA录入数据库题目流程

作为一名数据库萌新,为这个过程我奋斗了3天了,这是第四天。这一天我终于可以写这个流程了。 废话少说,进入正题。 第一步: 安装sql server服务器(因我这数据库文档是mdf和ldf文档,故需要先进行数据迁移)。安装sql server服务器流程:待会附上链接; 安装mysql5.7及其mysql workbench工具。安装教程:https://ww...

论软件体系架构之质量属性

论软件体系架构之质量属性 徐怀建 (石家庄铁道大学,河北省石家庄市,050000) 摘 要:软件架构(及软件架构设计师)重点关注的是质量属性。文章从常见的六个质量属性,即可用性、可修改性、性能、安全性、可测试性、易用性写起,使读者对其有初步的认识和了解。解决了在具体的软件开发环境中的质量属性是什么,怎么用,如何用好的问题。只用遵循质量属性的原则,才能有好...

使用Go env命令设置Go的环境

1 前言 在进行Go开发的时候,设置Go的环境变量信息是必须的。下面介绍windows和Linux,以及Go自身提供的命令进行设置的形式 2设置 2.1 Linux的设置 In Linux or macOS, you can execute the below commands.(在Linux或者macOS,你可以执行下面的命令) # Enable the...