**代码审查:Phabricator命令行工具Arcanist的基本用法
Phabricator入门手册
http://www.oschina.net/question/191440_125562
Pharicator是FB的代码审查工具,现在我所在的团队也使用它来进行代码质量的控制。其提供了一个differential(code review)命令行工具Arcanist(arc)。本文仅从本人的日常使用中总结出Arcanist比较常用的用法做个简单介绍。
环境说明
- OS: OS X Mountail Lion
- SCV: svn
- IDE: Eclipse
安装
- 将Arcanist的源码拷贝到本地
- somewhere/ $ git clone git://github.com/facebook/libphutil.git
- somewhere/ $ git clone git://github.com/facebook/arcanist.git
复制代码
- 将arc的路径加入到系统路径中
- $ export PATH=$PATH:/somewhere/arcanist/bin/
复制代码
或在系统的profile或是bash(如果用bash)的配置文件的末尾加上这一句。
- 命令行中输入arc看提示确认是否安装成功。
arc配置
- arc的全局配置
配置arc的默认编辑器,我使用vim
- $ arc set-config editor "vim"
复制代码
配置默认的phabricator的uri,uri为团队的phabricator主页的url
- $ arc set-config default http://phabricator.example.com
复制代码
- 在项目的根目录下建.arcconfig配置文件,文件中至少要填入以下内容
- {
- "project_id" : "your project name",
- "conduit_uri" : "your phabricator url"
- }
复制代码
举个例子:
- {
- "project_id" : "HelloWorld",
- "conduit_uri" : "http://phabricator.example.com"
- }
复制代码
该配置文件还可以配置静态代码检测引擎(lint)和单元测试引擎。
- 为项目安装证书,用于phabricator的认证。
- yourproject/ $ arc install-certificate
复制代码
接着按照命令行提示操作就OK了。
弄完这一步,才能真正在项目中使用arc。
在项目中使用arc
- arc help [--full | [COMMAND]] 查看帮助文档,接参数--full查看所有命令的详细用法,接具体的命令[COMMAND]如arc help diff可以查看该命令的详细用法。
- 想phabricator提交review request(Differential).修改完代码后,使用arc diff <path>命令提交review request,该命令会产生一个包含如下内容的文件要求填写:
- <<Enter Revision Title>>
- Summary:
- Test Plan:
- Reviewers:
- CC:
- Maniphest Tasks:
- # NEW DIFFERENTIAL REVISION
- # Describe the changes in this new revision.
- #
- # arc could not identify any existing revision in your working copy.
- # If you intended to update an existing revision, use:
- #
- # $ arc diff --update <revision>
复制代码
按照提示填写后,保存退出,arc就会自动提交request。Reviewers用逗号隔开,Maniphest Tasks填相关联的phabricator上的task_id,如T100。Test plan暂时没用过,官方文档:http://www.phabricator.com/docs/phabricator/article/Differential_User_Guide_Test_Plans.html
提交完成后,会产生一个形如http://phabricator.example.com/D24的url,url中的D24是revision_id。
- arc diff --update <revision_id>更新对应的review request。该命令产生一个如下的文件,按提示填写保存退出,arc会提交更新。
- # Updating D27: hahahah
- #
- # Enter a brief description of the changes included in this update.
- # The first line is used as subject, next lines as comment.
- #
- # If you intended to create a new revision, use:
- # $ arc diff --create
复制代码
- arc commit --revision <revision_id>提交对应提交代码更改,这个命令把svn commit的工作也做掉了,直接提交到代码库。
- arc todo <description> [option]可以快速给自己在phabricator上创建task,[option]用于把task CC给其他人.
- arc tasks [options] 查看Maniphest的tasks。
- arc amend --show 查看当前项目的differentials,arc amend --revision <revision_id> --show 查看指定revision_id的differential。
Reference:
Arcanist官方文档: http://www.phabricator.com/docs/phabricator/article/Arcanist_User_Guide.html
**代码审查:Phabricator命令行工具Arcanist的基本用法的更多相关文章
- windows下的命令行工具babun
什么是babun babun是windows上的一个第三方shell,在这个shell上面你可以使用几乎所有linux,unix上面的命令,他几乎可以取代windows的shell.用官方的题目说就是 ...
- 『.NET Core CLI工具文档』(一).NET Core 命令行工具(CLI)
说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:.NET Core Command Line Tools 翻译:.NET Core命令行工具 什么是 .NET Core ...
- 命令行工具aspnet_regiis.exe实现加密和解密web.config
命令行工具aspnet_regiis.exe,是一个类似于DOS的命令工具,称之为命令解释器.使用命令行工具加密和解密web.config文件中的数据库连接字符串时,只需要简单的语法命令即可. 加密语 ...
- nodejs 编写(添加时间戳)命令行工具 timestamp
Nodejs除了编写服务器端程序还可以编写命令行工具,如gulp.js就是Nodejs编写的. 接下来我们来实现一个添加时间戳的命令: $ timestamp action https://www.n ...
- 如何用Node编写命令行工具
0. 命令行工具 当全局安装模块之后,我们可以在控制台下执行指定的命令来运行操作,如果npm一样.我把这样的模块称之为命令行工具模块(如理解有偏颇,欢迎指正) 1.用Node编写命令行工具 在Node ...
- Orchard中的命令行工具
在Orchard中提供了一个命令行工具,我们可以使用这个命令行工具创建用户.创建博客.生成代码.配置网站.打包模块等.并且这个命令行工具是可以扩充的,只要我们在自己开发的模块中创建一个Command类 ...
- Linux 性能监控之命令行工具
引言 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因.这个命令行工具列表提供了足够的 ...
- 命令行工具解析Crash文件,dSYM文件进行符号化
备份 文/爱掏蜂窝的熊(简书作者)原文链接:http://www.jianshu.com/p/0b6f5148dab8著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 序 在日常开发 ...
- MySQL 命令行工具之 mysqldump 深入研究
mysqldump 是MySQL的一个命令行工具,用于逻辑备份.可以将数据库和表的结构,以及表中的数据分别导出成:create database, create table, insert into的 ...
随机推荐
- [POJ1068]Parencodings
[POJ1068]Parencodings 试题描述 Let S = s1 s2...s2n be a well-formed string of parentheses. S can be enco ...
- 联合主键用Hibernate注解映射的三种方式
第一.将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并重写equals和hascode,再将该类注解为@Embeddable,最后在主类中(该类不包含联合主 ...
- [转载]MySQL5.5 配置文件 my.ini 1067错误
原文链接:http://blog.csdn.net/xiaochunyong/article/details/7438200 解压mysql-5.5.22-win32.zip后的目录中有5个my-xx ...
- Homework
#include<stdio.h> #include<math.h> int main() { int a,b,c,l,p,s; printf("请输入三个数:&qu ...
- LAMP环境的安装
感觉一下子喜欢上了ubuntu.界面特别舒服.打算物理机装ubuntu了都. 00x1 LINUX linux我安装过了就不演示了,百度经验的一篇文章:http://jingyan.baidu.com ...
- POJ 1273 网络流(最大流)模板
http://poj.org/problem?id=1273 这道题很值得反思,弄了一下午,交上去先是一直编译错误,而在本地运行没有问题, 原因可能是oj的编译器版本老旧不支持这样的写法 G[from ...
- BZOJ 2654: tree
Description \(n\) 个点, \(m\) 条边,边有权值和黑/白色,求含有 \(need\) 个白边的生成树. Sol 二分+Kruskal. 将每条白边都加上一个权值,然后跑最小生成树 ...
- Fibonacci 1
Fibonacci 1 题面 \[F_0=0,F_1=1,F_n=F_{n-1}+F_{n-2}\] 给定\(n\),求 \[S(n)=\sum_{i=1}^{n}F_nF_{n-1}\] 数据格式 ...
- phpcms 无法显示缩略图 Call to undefined function image_type_to_extension
问题背景: 线下的phpcms项目没问题,线上的phpcms新添加的图片缩略图显示有问题,查看了一下php版本,线下是5.5的,线上的是5.1的 问题原因: 看了一下线上的错误日志,显示: PHP F ...
- 【架构】MQTT/XMPP/GCM 等参考资料
https://www.zhihu.com/question/29138530 https://segmentfault.com/q/1010000002598843/a-10200000026014 ...