Phabricator使用总结

最近使用Phabricator来进行 code review, 总结一下

1. 介绍:

Phabricator是一套基于Web的软件开发协作工具,包括代码审查工具Differential,资源库浏览器Diffusion,变更监测工具Herald,Bug跟踪工具Maniphest和维基工具Phriction。Phabricator可与Git、Mercurial、Subversion集成使用。
Phabricator是开源软件,可在Apache许可证第2版下作为自由软件分发。
Phabricator最初是Facebook的一个内部工具,主要开发者为Evan Priestley。Evan Priestley离开Facebook后,在名为Phacility的新公司继续Phabricator的开发。

官网:https://www.phacility.com/

2. 配置工具


# 假设是Ubuntu
sudo apt-get install php7.0-cli php7.0-curl php-pear
 
# git clone下载源文件。 
# 或者,你也可以直接点击上面的链接去GitHub下载压缩包,下载完成后解压
mkdir ~/workspace
cd ~/workspace
git clone https://github.com/facebook/libphutil.git
git clone https://github.com/facebook/arcanist.git

# 编辑~/.bashrc 或者 ~/.zshrc ,加入如下一行,之后source ~/.bashrc
export PATH=~/workspace/arcanist/bin/:${PATH}

# 如果没有项目配置,可以运行下面的命令设置全局的参数:
arc set-config default "你Phabricator系统访问URL"
arc install-certificate

# 

# 在~/.bashrc里添加下面两行, 使用vim编辑工具来编辑
export EDITOR=vim
alias arc='LC_ALL=C arc'

# 并在命令行执行,使它生效
source ~/.bashrc
或者
source ~/.zshrc

3. Arcanist - 命令交互
我们用这个工具提交变更和审查请求,对变更做出更改,或者在通过审查后发布到远程仓库分支中。
常用的命令有:
arc diff:发送变更详情和审查请求
arc land:推送变更(Git and Mercurial),当通过审查后使用这个命令
arc list:显示变更处理的情况
arc cover:查找最有可能审查变更的人
arc patch:给版本打补丁
arc export:从Differential下载补丁
arc amend:更新Git commit
arc commit:提交变更(SVN)
arc branch:查看Git branches更加详细的信息

3. 命令行工具

本文档默认使用git,其他版本管理工具自行搜索响应方法。假设使用dev branch

# 本地开发
git checkout -b feature_1
# 修改本地文件
git commit -a -m "change something...."
 
# 提交code review
arc diff


# 可按如下格式填写,也可不填写,然后打开生成的URL,在网页中进行填写
  # Summary: something you want to say
  #
  # Test Plan: N/A
  #
  # Reviewers: xxx1, xxx2
  #
  # Subscribers: 
 
# 本地修改后再次提交code review(这个revision是上次创建code review时的id,比如D4063)
# arc diff --update 4063 commit_id (这个命令如果有问题,使用下面)
arc diff commit_id

# reviewer已经Accept之后,提交代码(不要用git push!):
arc land feature_1

# arc land 默认提交到master分支,可指定提交分支--onto:
arc land feature_1 --onto dev

# 如果报错找不到对应的revision,带上revision号(比如4063)运行:
arc land --revision 4063

# land之后,feature branch会被自动删除!!!

日常操作tips:

背景:

本地仓库有二个分支:maste分支及非master分支;
在远端项目仓库下有自己的分支(非master分支),用于提交修改的代码;
远端分支下的master分支也变更啦(有其他人的merge)。

现在需要借助arc review和提交自己分支修改的代码到master分支。



常用操作:

切换到本地的master分支

$ git checkout master


从远端master分支拉代码到本地进行合并

$ git pull origin master


切换到本地的非master分支

$ git checkout sr


将本地仓库的master merge到非master分支

$ git merge master


然后使用arc提交review

$ arc diff master


成功的话,会给个网址,然后点击edit revision,选择review人提交,等待accepted后

$ arc land --onto master


如果成功更好,如果失败且是因为远端库master又做了改变,则:

切换到master分支,git pull origin master后

$ git checkout sr

$ git merge master

$ arc diff --update 之前提交的网址diff后数字

经过review人再次accepted,


$ arcl land --onto master

成功。

PS:arc用到的命令有arc list;   arc diff;   arc land --onto master;  arc diff --update 之前提交的编号

参考:使用Phabricator做为Code Review工具

Phabricator命令行工具Arcanist的基本用法

发布了164 篇原创文章 · 获赞 64 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/qq_20417499/article/details/104367080