On this page
PhabricatorCodeReview
Out of date
该页面已过期,请改用Review Board。
本页说明了如何使用Phabricator对 Apache Hive 的贡献进行代码审查。
Setup
访问https://reviews.facebook.net并在此处连接您现有的 github 或 Facebook 帐户。
Phabricator 命令行工具需要开发机器上可用的 PHP 解释器。如果您可以运行命令 php --version ,那么您已经有了它。如果没有,谷歌的“ PHP 命令行”,看看如何为您的系统安装它。
接下来,install arc。如果您遵循Arcanist 快速入门指南,则仅适用于第一部分(“安装 Arcanist”)。
运行 ant arc-setup 以安装 JIRA 集成所需的额外模块。 (此 Ant 目标是在 HIVE-2486 的帮助下添加的.)
在 Hive 结帐中(git 或 svn),运行 arc install-certificate 并按照给出的说明进行操作。
就是这样,您已经准备好使用 Phabricator!
提交补丁(git)
从 git 签出(例如,从 git clone git://github.com/apache/hive.git )中,典型的使用 Sequences 如下:
ant arc-setup
git checkout -b HIVE-123-dev-branch
编辑一些文件以实现 HIVE-123
git commit -a -m“关于如何减少 DDL 代码的最初描述”
电弧差异-Jira HIVE-123
(可选)访问 Phabricator 提供的差异 URL,以执行添加 Comment 者和 CC 的操作
请注意,此时,您的差异已作为 JIRA 的补丁提交,并且 JIRA 中包含了指向新差异的链接的相应 Comments。
如果您只想查看 diff 的外观,而不实际创建它,请对 arc diff 命令行使用 -preview (但不要在访问 diff 时 continue 创建 diff) UI,因为它将丢失 JIRA 信息)。
更新补丁程序(git)
此时,审阅者可以添加 Comment 并请求更改。要解决这些问题:
git checkout HIVE-123-dev-branch
编辑更多文件
git commit -a --amend --reset-author -C HEAD (这将保留现有的日志消息,这对 Phabricator 很重要)
arc diff (您需要在此处提供所做更改的描述;这将在 UI 中显示给审阅者)
重复直到所有 Comment 者都满意为止。请注意,您只需要在第一次调用 arc diff 时指定 -jira ;之后,arc 将从 git 日志中存储的修订版 ID 中获取它。
提交补丁(svn)
从 svn 检出(例如 svn 检出http://svn.apache.org/repos/asf/hive/trunk hive-trunk )开始,典型的使用 Sequences 如下:
ant arc-setup
编辑一些文件以实现 HIVE-123
arc diff --jira HIVE-123 (系统会提示您提供描述)
(可选)访问 Phabricator 提供的差异 URL,以执行添加 Comment 者和 CC 的操作
请注意,此时,您的差异已作为 JIRA 的补丁提交,并且 JIRA 中包含了指向新差异的链接的相应 Comments。
如果您只想查看 diff 的外观,而不实际创建它,请在 arc diff 命令行上省略 -jira 。 (svn 工作流程不支持--preview 选项.)
更新补丁(svn)
此时,审阅者可以添加 Comment 并请求更改。要解决这些问题:
编辑更多文件
弧形差异 (系统会提示您选择要应用更改的正确现有差异)
与 git 不同,svn 工作流无法将现有的 diff 与您的检出关联,这就是为什么您需要帮助它的原因。
Reviewing Patches
使用差异用户界面查看差异时:
单击代码中的行号以添加特定于行的 Comments
您也可以在底部的框中添加一般 Comment
完成后,请确保从底部的下拉菜单中选择一项操作(例如,请求更改),然后单击Clowncopterize按钮。没有这个,贡献者 JIRA 将看不到您的更改。
提交补丁(svn)
如果您是提交者,则可以应用修订版 D123 中的补丁通过以下方式提交:
svn update
ant arc-setup
弧补丁-修订版 123
令人惊奇的是,它实际上会自动为您 svn 添加/删除文件,因此您不必(就像使用原始 patch 命令一样)。哇!进展!
然后提交,一旦所有必要的测试都通过,运行 arc commit --revision 123 。这将为您执行 svn commit ,并自动填写正确的日志消息。
Limitations
除了进入 JIRA 并在那里重新添加补丁程序的最新版本外,贡献者目前无法授予其补丁程序的 ASF 权限;我们正在为此解决方案
如果提交差异并请求更改会自动更新 JIRA“可用补丁”状态,那就太好了
奥术师的工作方式(git)
Arcanist 在提交消息中存储有关当前工作流程的信息。
如果您要修改信息,请不要删除此信息,这一点很重要。
您不应触摸的重要事项:
1.第一行的前缀是“ HIVE-123 jira”-删除它会破坏 JIRA
集成,这是将差异版本与 JIRA 相关联的唯一方法
issue.
“测试计划:”-默认情况下,Arc-JIRA 提供“ EMPTY”作为测试计划。您
可以根据需要更改它,但是如果您删除它,则 Arcanist 将拒绝工作
completely.“差异修订:123”-这是您当前修订的 ID
如果正在删除,Arcanist 会在您运行时创建一个新修订
“ arc diff”而不是更新旧版本。“审阅者:JIRA”-如果您从审阅者,Comment 和补丁中删除 JIRA
不会传播到 JIRA。
FAQs
1.如果您在圆弧上遇到如下错误:
libphutil v1 libraries are no longer supported
git 在您的 libphutil 存储库中签出此特定标签:
git checkout 870bcc76434410344d27a3fa4604ac96200bf7f6
2.如果您在 Arcanist 中遇到这样的错误:
Call to undefined method ArcanistGitAPI parseRelativeLocalCommit()
OR
Failed to load symbol ...
检出此标记是否为奥术师:
git checkout 6f6fde84cc530c2b51f095d9636b9e15301519a1