如何从 gerrit 获取给定主题的所有更改

How to fetch all changes with given topic from gerrit

我们想将主题用于正在开发的更改,但我们需要获取它们,因为我们是从服务器构建的。 我们知道我们可以获取提交和更改,但出于简单原因,我们希望使用主题名称来获取。

我们还没有找到方法。有人知道我们该怎么做吗?

我们已经放弃使用分支来测试开发,因为它会给主存储库带来垃圾,我们必须在之后删除它们并在全球范围内复制所有这些删除。

您应该使用 gerrit query 来查找已知主题的所有开放更改:

ssh -p 29418 review.example.com gerrit query --format=JSON topic:MY-TOPIC status:open project:xxx

然后您可以迭代返回的 JSON 中的每个项目,获取更改并使用您的 CI 构建它们。

老问题,但可能有所改进。出于 CI 目的,您还需要 refs 来了解您需要的补丁集。所以添加 --current-patch-set 将提供该信息。

您也可以离开项目,因为它无论如何都会提供项目信息。非常适合多仓库项目。

ssh -p 29418 review.example.com gerrit query --format=JSON --current-patch-set topic:<TOPIC> status:open

然后只需解析 json 以获得您需要的提交。

Gerrit 有一个 Changes Submitted Together 端点,它为您提供调用提交时将提交的所有更改的列表。

这就是 Gerrit UI 的“一起提交”部分的强大功能。