apache-hive / 3.1.1 / reference / PhabricatorCodeReview.html

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.

  1. “测试计划:”-默认情况下,Arc-JIRA 提供“ EMPTY”作为测试计划。您
    可以根据需要更改它,但是如果您删除它,则 Arcanist 将拒绝工作
    completely.

  2. “差异修订:123”-这是您当前修订的 ID
    如果正在删除,Arcanist 会在您运行时创建一个新修订
    “ arc diff”而不是更新旧版本。

  3. “审阅者: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