如何在脚本中运行 arc diff,而不提示输入消息

alb*_*o56 4 phabricator arcanist

Phabricator 的 Arcanist 命令行工具允许您添加“差异”以进行修订。这很有用,因为您可以快速生成您的同事可以查看的差异。

通常,arc diff master例如,运行会提示您输入 diff 消息、测试计划和其他一些信息,然后在 Phabricator 上创建一个 diff。

但是,我想从持续集成服务器运行 arc diff,因此假设所有问题都是肯定的,并将消息和测试计划作为参数传递给命令。我现在拥有的是:

arc diff master --allow-untracked
Run Code Online (Sandbox Code Playgroud)

尽管如此,它还是假设它是从人类用户那里调用的,并请求一条消息,但在从持续集成服务器调用时却失败了。如何跳过提示?

小智 6

我认为您正在寻找的是--verbatim选项。考虑到更改已提交,因此它具有提交消息,您可以运行如下命令:

arc diff --verbatim --reviewers xxxx --uncommitted --allow-untracked

这意味着您将 设置Test plan为可选,否则您也必须指定它。

最后,您还可以使用--message-file.

另一种方法是:

  1. 创建一个 Diff(但不是一个 rev) arc diff --raw-command "git diff origin/master"
  2. 读取结果以获取差异 ID
  3. 使用createrevision此处所述的管道调用来创建修订:

https://secure.phabricator.com/conduit/method/differential.createrevision/