七、Phabricator简介
参考URL: https://blog.csdn.net/u010285974/article/details/81222976
官网:https://www.phacility.com/
项目地址:https://github.com/phacility/phabricator
Phabricator是一套基于Web的软件开发协作工具,一个Web应用用于帮助软件公司构建更好的软件。
原是facebook员工开发的可视化代码评审工具,现在离开facebook去Phacility,并持续维护
主要包含以下几个功能:
Phabricator是一套基于Web的软件开发协作工具,它的主要功能有操作数据(任务查看操作);开发辅助(工作流,查看提交的 diff,代码检查,执行单元测试);辅助(文件文档管理)。它最初是Facebook的一个内部工具,后来发展开源。
Phabricator是一个LAMP (Linux, Apache, MySQL, PHP) 程序,所以Windows下是不能安装的。
Phabricator能够托管代码仓库,并提供给SSH和HTTP访问方式。
个人使用体会TODO:
改名为id_rsa,注意,这里的文件不能有后缀,否则的话进行上传文件的时候会不识别你的私钥的。
注意:当然你也可以百度 在你的电脑上生成公私钥,把公钥上传Phabricator服务端。
code review 大致的流程为:
真实的开发情况会比上面描述的流程复杂一些,比如我们不会等待一次 code review request 被Accepted 后,才继续开发,而是等待过程中继续开发。
为了适应真实的开发情况,制定了一个流程和规范。
TODO
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创建的代码审核辅助工具。
首先,安装依赖:
复制 php.ini-development 文件为 php.ini, 用文本编辑器打开, 将 extension_dir=”ext”、 extension =”php_curl.dll”、extension =”php_mbstring.dll”前面的分号去掉。 如果没
有, 则添加这几项;
将下载好的两个文件解压,将arcanist 中的 arc.bat 所在目录配置在 Path 环境变量中。
再 将 解 压 好 的 libphutil 文 件 夹 , 剪 切 到arcanistr\externals\includes 目录下;
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).
{
"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即可。
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
原因分析:
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
提交后,代码即进入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有优势。
$ 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/