使用Phabricator做Code Review的介绍
更新时间:2024-02-26 21:47:01 阅读量: 综合文库 文档下载
使用Phabricator做Code Review的介绍
Haiyong Lei
1
Phabricator的安装 1.1 下载Phabricator
在安装目录/opt/codereview下运行:
git clone https://github.com/phacility/libphutil.git git clone https://github.com/phacility/arcanist.git git clone https://github.com/phacility/phabricator.git sudo ./phabricator/scripts/install/install_ubuntu.sh
1.2 配置storage 在安装目录/opt/codereview/phabricator下运行
sudo ./bin/config set mysql.host localhost sudo ./bin/config set mysql.user root sudo ./bin/storage upgrade
sudo ./bin/config set mysql.pass 123456
// mysql主机地址 // mysql用户名 // mysql用户密码
若从本机登入MySQL遇到Access denied for user 'root'@'localhost'问题,运行:
mysql -u root -p -h 127.0.0.1
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; 进入MySQL shell后,输入:
1.3
配置Apache2
1.3.1 site配置文件:
新建/etc/apache2/sites-available/phabircator文件:
RewriteEngine on
RewriteRule ^/rsrc/(.*) - [L,QSA] RewriteRule ^/favicon.ico - [L,QSA] RewriteRule ^(.*)$ /index.php?__path__=$1 [B,L,QSA] # Change this to the path where you put 'phabricator' when you checked it # out from GitHub when following the Installation Guide. #
# Make sure you include \DocumentRoot /opt/codereview/phabricator/webroot # Change this to the domain which points to your host. ServerName localhost
#Require all granted //手册里有这一行,删除
1.3.2 可选,修改/etc/apache2/http.conf:
添加一行:
ServerName localhost
1.3.3 运行apache2:
sudo a2dissite default sudo a2ensite phabricator sudo /etc/init.d/apache2 restart
1.4
用浏览器测试
用浏览器打开http://192.168.xxx.xxx/测试,可以看到admin用户注册界面,注册一个admin用户用以完成后续设置。注意不要在浏览器地址栏输入localhost测试,Phabricator不支持后一地址。
1.5
a)
b) c) d) e) f)
Post-install设置
Set Base Uri:
sudo ./bin/config set phabricator.base-uri 'http://192.168.xxx.xxx/'
Set Repo Dir:
sudo mkdir -p /var/repo sudo chmod a+w /var/repo
Start Phd Daemon: sudo ./bin/phd start
注:每次修改Phabricator配置,都会要求重启Phd。 sudo ./bin/phd restart Stop Phd:
sudo ./bin/phd stop
Pygmentize:
sudo apt-get install python-pygments
登入Phabricator:
登入admin用户后,根据Phabricator给出的提示,fix其余setup issues。
Add Auth Provider:
登入admin用户后,在Auth > Auth Provides 菜单下,点击 Add Provider按钮, 启用
\模块,否则外部无法访问Phabricator。
2
配置Diffusion模块
在Config > Applications Configuration菜单下,修改Diffusion选项:
(暂无修改)
3
配置Differential模块
在Config > Applications Configuration菜单下,修改Differential选项:
require-test-plan-field allow-reopen
allow-self-accept
// 是否检查有无Test Plan,设为false。 // 允许重开
// 允许patch owner自我批准
4
添加代码库
在Diffusion里可添加外部git/svn/hg代码库。代码库同步功能需要Phd服务运行:
注:code review是Differential的功能,不依赖与Diffusion的代码库。
代码库添加成功后,Phabricator需要几分钟时间同步,完成后可以直接浏览代码库内容。代码库host在Phabricator里,暂未研究。
sudo ./bin/phd start
5
arc安装和使用
5.1 ubuntu下安装:
安装PHP5:
安装 svn或git:
下载arc到本地:
添加arc的path:
PATH=$PATH:/opt/codereview/arcanist/bin export PATH
git clone https://github.com/phacility/libphutil.git git clone https://github.com/phacility/arcanist.git sudo apt-get install subversion sudo apt-get install git sudo apt-get install php5
5.2 windows下安装:
安装TortoiseSVN或GitForWindows:
http://tortoisesvn.net/
https://git-for-windows.github.io/
注: TortoiseSVN要装command line tools选装项。
安装PHP5 for Windows:
下载arc到本地:
设置PATH环境变量使得php5、arc和svn能从命令行访问;设置EDITOR环境变量指向偏
git clone https://github.com/phacility/libphutil.git git clone https://github.com/phacility/arcanist.git http://windows.php.net/download/
爱的编辑器,比如notepad.exe。
5.3
验证安装:
运行arc help确认无误。
5.4
arc基本命令:
arc install-certificate arc diff
arc diff --update Dnnn arc commit arc list
arc close-revision Dnnn
// 配置token
// 提交patch到Phabricatior,得到Revision ID // 提交修改后的patch, Dnnn是Revision ID // 合入patch 到SVN并关闭Phabricatior上的 // 关闭Phabricatior上这个patch对应的Revision ID // 列出本地working Revision ID
6
Review流程、
本流程参考自FreeBSD.org的Code Review流程。
6.1
a)
b)
Setup
创建帐号
浏览器中打开Phabricator,按提示创建一个普通用户帐号,等admin审批通过后即可使用。
安装token:
arc install-certificate
C:\\Users\\Haiyong>arc install-certificate http://192.168.68.135 Trying to connect to server... LOGIN TO PHABRICATOR
Open this page in your browser and login to Phabricator if necessary:
http://192.168.68.135/conduit/login/
Then paste the API Token on that page below.
Paste API Token from that page: cli-hv44cg7bi7jthlbfsazemfi7xqen Writing ~/.arcrc...
SUCCESS! API Token installed.
c)
用创建的账号登入Phabricator, 打开提示中给出http://
arc set-config default
设置默认服务器地址
6.2 Review流程
本流程参考自FreeBSD.org的Code Review流程。
图:Review流程
第一步,提交你的patch:
准备 本地 代码 修改 提交 arc diff --create arc diff --update 通知 Review Reject Accept 合入 svn commit 关闭 arc close-revision
完成本地修改之后,提交你的patch到Phabricator,命令如下: arc diff
注:提交到Phabricator而非svn代码库,此时svn代码库不受任何影响。
类似svn commit命令,arc diff会打开指定编辑器,要求你输入comment:
<
Summary: Test Plan: Reviewers: Subscribers:
# NEW DIFFERENTIAL REVISION
# Describe the changes in this new revision.
忽略#开头的行:
如果成功,arc会给出本次提交的Revision ID用于后续引用。Revision ID以D+数字的
Created a new Differential revision:
Revision URI: http://192.168.68.135/D5
开头: 本次修改的详细描述,必填,可以换行(从第一行到Summary行)。 Summary: 本次修改的简短描述,必填。 Test Plan: 留空,不填。
Reviewers: Reviewer的账号,可填多个。可以不填,之后打开Phabricator补上。 Subscribers: 订阅者的账号,可选。
形似表示,如:D1234。
第二步,通知Reviewer:
第三步,Review发现问题:
Reviewer如果发现一些问题,提出修改建议。提交者再次修改代码,重新提交到同一
arc diff --update Dnnn
注:必须使用开头提交时给的Revision ID。
如果第一步没有填写reviewer,现在可以打开Phabricator修改你的提交,添加reviewer。
Phabricator会邮件通知reviewer有新的提交。
个Revision ID,命令如下:
所有Reviewer认可你的patch之后,patch允许被合入代码库并关闭:
svn commit
第四步,Review通过:
注: 此命令是svn命令非arc命令
arc close-revision Dnnn
注:此命令在Phabricator里完结本次提交。
注:arc commit可以取代以上两步操作,但是arc commit无法让用户修改commit comment所以
不推荐使用。
7
Audit流程
在Phabricator中,Audit定义为post-commit流程。
(暂无使用)
8
参考文档
1. Phabricator User Documentation - https://secure.phabricator.com/book/phabricator/ 2. Phabricator入门手册 - http://www.oschina.net/question/191440_125562 3. FreeBSD Code Review - https://wiki.freebsd.org/CodeReview
4. 有人实践过 Phabricator 以及 Arcanist 作为 code review 的工具么?- http://www.zhihu.com/question/19977889
正在阅读:
使用Phabricator做Code Review的介绍02-26
我爱小巷作文400字07-14
践行数学新课标理念 培养学生应用意识10-30
走进冬天作文400字07-13
问题引路 反馈交流 适时追问 演绎精彩1刊登在14《中学数学》第七期09-27
zemax操作数手册03-23
蚂蚁给我带来的启示作文500字06-29
2019年高考历史真题和模拟题分项汇编专题12 世界资本主义经济政策的调整- 含解析09-21
认识几分之一教学设计07-03
第3章 时间价值与风险、报酬计量03-15
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- Phabricator
- 使用
- Review
- 介绍
- Code
- 工程施工管理经验交流发言稿
- 职业健康安全管理制度汇编(参考) - 图文
- 四川省成都市2018届高三二诊模拟考试数学文科试卷含答案
- 开通仪式议程安排
- 婚前保健工作实施方案
- 同学聚会40年班长发言稿
- 2018年经济调查报告4篇
- 实验一 - 刀具几何角度的测量
- 奥鹏北语11春《经济应用文写作》作业1
- 过敏性紫癜治疗指南
- 20XX年新闻专业大学生寒假社会实践报告
- 政治八年级上首师大版1.4善于沟通教案 - 图文
- 中石化改造工程常用资料及质量、安全注意事项
- 浅谈如何构建和谐的师生关系
- 哈尔滨托管商系统操作手册
- 电大《管理学》复习题
- 华侨城地产一期弱电工程投标文件 技术标
- 2018年高考原创押题卷(三)英语试题
- 部编版人教版2019年小学一年级语文上册小学一年级语文看图写话训
- 怎样让学生学好化学