Phabricator Arcanist 快速开始

本文详细介绍Phabricator的使用方法,包括代码仓库管理、代码审查流程及Arcanist客户端工具的安装配置与常见问题解决。涵盖Windows环境下Arcanist的安装步骤,以及如何利用arcdiff和arcland进行代码提交与合并。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Phabricator简介

七、Phabricator简介
参考URL: https://blog.youkuaiyun.com/u010285974/article/details/81222976

官网:https://www.phacility.com/
项目地址:https://github.com/phacility/phabricator
Phabricator是一套基于Web的软件开发协作工具,一个Web应用用于帮助软件公司构建更好的软件。
原是facebook员工开发的可视化代码评审工具,现在离开facebook去Phacility,并持续维护
主要包含以下几个功能:

  1. 源码的review与审核
  2. 代码托管,代码浏览
  3. BUG跟踪
  4. 项目管理
  5. 团队成员交流
  6. 组织风险讨论
  7. 事件备注,以及回顾(统计等)
  8. 权限设置
  9. 其他功能

Phabricator是一套基于Web的软件开发协作工具,它的主要功能有操作数据(任务查看操作);开发辅助(工作流,查看提交的 diff,代码检查,执行单元测试);辅助(文件文档管理)。它最初是Facebook的一个内部工具,后来发展开源。

Phabricator是一个LAMP (Linux, Apache, MySQL, PHP) 程序,所以Windows下是不能安装的。

Phabricator能够托管代码仓库,并提供给SSH和HTTP访问方式。

个人使用体会TODO:

  1. Phabricator有wiki功能,很方便团队共享一些项目基本信息、以及知识。

1. Phabricator基本使用

1.1 下载仓库代码
1) Phabricator 配置http访问代码仓库
  1. 首先配置git的密码管理
    在这里插入图片描述
  2. 然后使用 IDEA打开http://xxx.git 下载代码即可。
2) Phabricator 配置ssh访问代码仓库
  1. 如上图,选择钥匙图标,选择–> SSH秘钥操作—> 生成秘钥对。
    Phabricator服务端会帮你生成公私钥,公钥服务器端保留,你下载私钥放置到
    C:\Users\Administrator.ssh

改名为id_rsa,注意,这里的文件不能有后缀,否则的话进行上传文件的时候会不识别你的私钥的。

注意:当然你也可以百度 在你的电脑上生成公私钥,把公钥上传Phabricator服务端。

2. Phabricator 代码审计(code review)流程

code review 大致的流程为:

  1. 修改代码
  2. arc diff,生成 revision,它的状态为 Need Review
  3. 邮件通知 reviewer 进行审核。如果审核不过,它会被置为 Need Revision,再次 diff 后,会重新回到 Need Review 状态;如果审核通过,它会被置为 Accepted
  4. arc land 后,revision 的状态会变为 Closed

真实的开发情况会比上面描述的流程复杂一些,比如我们不会等待一次 code review request 被Accepted 后,才继续开发,而是等待过程中继续开发。

为了适应真实的开发情况,制定了一个流程和规范。

TODO

二、Arcanist

arcanist的用法简介
参考URL: http://softlab.sdut.edu.cn/blog/subaochen/2016/09/arcanist%E7%9A%84%E7%94%A8%E6%B3%95%E7%AE%80%E4%BB%8B/

Arcanist是Phabricator提交代码评审的客户端工具。即这是Phabricator配套的Code Review工具。

Arcanist是Phabricator提供的一个客户端命令行工具,旨在帮助我们快速的操作和使用(不使用Arcanist的话,在web界面也是可以进行diff等操作的)。

arcanist是phabricator创建的代码审核辅助工具。

1. windows 下Arcanist安装

首先,安装依赖:

  • 安装 PHP (PHP官方下载地址: https://windows.php.net/download/).
    安装 PHP, 并配置环境变量;
    在系统变量中找到Path 点击;找到php.exe的文件目录,添加到path中;php -v 显示版本,表示成功;

复制 php.ini-development 文件为 php.ini, 用文本编辑器打开, 将 extension_dir=”ext”、 extension =”php_curl.dll”、extension =”php_mbstring.dll”前面的分号去掉。 如果没
有, 则添加这几项;

  • 安装 Git. 并把git命令行加入环境变量PATH
  • 安装 arcanist 和 libphutil。

将下载好的两个文件解压,将arcanist 中的 arc.bat 所在目录配置在 Path 环境变量中。
再 将 解 压 好 的 libphutil 文 件 夹 , 剪 切 到arcanistr\externals\includes 目录下;

  • 配置 arc 编辑器。
    使用 Arcanist 时需要使用文本编辑器编辑文本,不能使用微软自带的NotePad,建议使用 vim。
    在命令行运行如下命令,利用git的 vim.exe
C:\Users\G>arc set-config editor "C:\Program Files\Git\usr\bin\vim.exe"
Set key "editor" = "C:\Program Files\Git\usr\bin\vim.exe" in user config (was null).
  • 配置 Arcanist
    方法一:
    在 git 库代码根目录, 创建文件**.arcconfig**,并写入
{
"phabricator.uri" : "http://你公司Phabricator服务地址.com/"
}

在项目的根目录, 使用命令行输入, arc install-certificate,会提示访问路径。在浏览器中打开,复制 token,粘贴到命令行即可。

注意: 你应该把这个文件(.arcconfig)提交到代码仓库。新加入的人就不用使用方法二中设置arc set-config default 的步骤了。arc命令会根据这个文件,知道,它连接的Phabricator服务地址。

方法二:
配置PhabricatorURI:运行命令arc set-config default 你公司Phabricator服务地址,例如arc set-config default http://dev.she.cn/
安装证书:运行命令arc install-certificate,依照提示访问http://公司Phabricator服务地址/conduit/token/, 复制内容粘贴token即可。

1.1 安装使用过程问题总结
  1. 执行arc -v报错Warning: PHP Startup: Unable to load dynamic library ‘”php_curl.dll”’
C:\Users\G>arc -help
PHP Warning:  PHP Startup: Unable to load dynamic library '
Warning: PHP Startup: Unable to load dynamic library '”php_curl.dll”' (tried: D:\php-7.3.6\ext\”php_curl.dll” (找不到指 定的模块。), D:\php-7.3.6\ext\php_”php_curl.dll”.dll (找不到指定的模块。)) in Unknown on line 0

原因分析: php.ini中的extension_dir = “ext” 指定了它去ext目录找拓展的动态库文件。仔细查看报错,发现它”php_curl.dll” 整个替换了。

解决方法:
因此,修改php.ini 相关动态库引入,类似如下即可:

extension =curl
extension =mbstring
  1. 执行arc -help报错:ERROR: Unable to load libphutil. Put libphutil/ next to arcanist/, or update your PHP ‘include_path’ to include the parent directory of libphutil/, or symlink libphutil/ into arcanist/externals/includes/.

原因分析:
arcanist安装路径下externals\includes\ 下必须是libphutil目录名,之前是libphutil-master,它找不到,这里这个目录名是死的,arcanist在\externals\includes\libphutil找。
解决方法:
D:\arcanist-master\externals\includes\libphutil
3. 执行arc diff时乱码 (window下 vim乱码)
原因分析:因为前面配置arc使用git带的 vim.exe编辑器。原因是vim配置的编码问题。
解决方法:
找到VIM安装目录下的vimrc文件(C:\Program Files\Git\etc):
在文件最前面添加:

set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set fileformats=unix
set encoding=prc

2. Arcanist基本使用

在这里插入图片描述

  1. arc diff (使用 arc diff 将代码发送到 Differential 以供审核)
    对项目做了一些修改后,首先git add/git commit将修改放进暂存区(stage area),然后执行arc diff命令,会提示填写下面的信息:
  • Test Plan – 必填,详细说明你的测试计划;
  • Reviewers – 必填,执行代码审核人的账户,多个使用”,”隔开;
  • Subscribers – 非必填,订阅人,能够收到代码变更的邮件通知,多个使用”,”隔开;

提交后,代码即进入phabricator的Differential,并生成一个代号D#(#为具体的数字),代码审核人就能够审阅你的代码了。

如果审核未通过,修改代码后继续使用arc diff –update D#,表示更新D#这个Differential,审核人可以继续就D#进行审核,提出审核意见。

如果审核通过,在本地执行arc land即可将代码push到中央仓库。如果存在开发分支,arc land也会将开发分支合并到master,并删除开发分支(合并和删除开发分支待验证)。

arc diff –preview允许在phabricator界面创建Diff,在更新Diff时可能更加方便,值得尝试。
arc diff 可以加参数–preview,这样会给出url,打开后可以在web中创建Differential,或者选择已存在的进行更新,比命令行会友好一些

走了一遍arc diff –preview的流程,确实比终端界面容易操作一些。对于新建diff,效率没有终端高;对于更新diff,不用爬到页面去找diff的ID了,比终端命令方便。
因此,新建diff,直接arc diff就好;更新diff,arc diff –preview有优势。

  1. arc land
    代码审核通过后,可以执行arc land将代码提交进中央仓库。arc land自动执行git push并且squash log ,默认情况下也删除了开发分支。arc land –keep-branch应该可以保留开发分支,此功能待验证。
2.1 Arcanist常用命令

$ 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 # 修改配置,使用–local参数为全局配置

注意:当某个命令卡主时,比如arc diff 卡住,我们可以加 --trace 参数打印日志看具体卡在哪一步。

参考

Windows系统下Phabricator的Arcanist配置安装
参考URL: https://www.jianshu.com/p/a6ee738da1aa
arcanist的用法简介
参考URL: http://softlab.sdut.edu.cn/blog/subaochen/2016/09/arcanist%E7%9A%84%E7%94%A8%E6%B3%95%E7%AE%80%E4%BB%8B/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西京刀客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值