我可以在 Gerrit 中看到分支的最终状态吗?

Can I see the final state of a branch in Gerrit?

我在工作中使用 Gerrit 进行代码审查,我对它鼓励的工作流程和它所具有的代码审查功能感到非常满意。

但是,它似乎缺少一项我已经习惯使用 Github / GitLab / BitBucket 的功能:能够查看功能分支的整个最终状态(包括所有提交的更改)在那个分支上)。

对于长分支,开发需要回溯以撤消之前的尝试,这导致请求将分支压缩为单个提交,以便可以审查其最终状态以确保最终状态有意义。但是,我非常不喜欢为了方便代码审查而丢失中间提交,所以我想避免这种情况。

Gerrit 是否有任何方法可以让我查看分支的最终状态? 或者更一般地说,查看两个任意提交之间的差异? (在那种情况下,它将是分支的负责人和分支的提交)。

如果可以通过某种插件实现,那也可以。

将分支压缩为单个提交确实是个坏主意,因为您将丢失功能分支提交历史记录。

Gerrit 没有您想要的 diff 功能,而且 AFAIK 也没有执行该功能的插件,但我认为,更改页面包含分析合并提交所需的一切。

假设您遇到以下情况:

A --- B    <== master
 \
  \
   C --- D <== feature

并且您想将该功能合并到 master 中以获得:

A --- B --- E <== master
 \         /
  \       /
   C --- D    <== feature

在合并提交的更改页面中,您可以selectGerrit 将如何创建差异(Parent 1、Parent 2 或 Auto Merge),如以下示例所示。

家长 1:

家长 2:

自动合并:

您还可以看到将被功能分支合并的所有提交:

注意:我使用的是 Gerrit 3.0.3