【问题标题】:Is it possible to have parallel incremental reviews in gerrit?是否可以在 gerrit 中进行并行增量审查?
【发布时间】:2015-06-02 06:29:38
【问题描述】:

假设我有更改 #1,我将两个新函数 A() 和 B() 添加到 MyFile.c 。 我触发更改 #1 以在 gerrit 上进行审查,我将其称为审查 #1。 然后,当审查 #1 仍在进行时,我引入了另一个更改 #2,我在同一个 MyFile.c 中添加了两个新函数 AA() 和 BB(),它们在其中调用 A() 和 B( ) 分别。我将此评论称为#2。 我的问题是我是否可以让我的同行审查变更#2,而变更#1 仍在接受审查(尚未提交)。显然,我希望在评论 #2 中添加 A() 和 B() 不会显示为新功能,而只是让评论 #2 显示变更 #2 相对于变更 #1 的增量差异。

这可能吗?我该怎么做?

【问题讨论】:

  • 我认为在这里说“尚未推送”是一种误导。在创建 Gerrit 评论时,您已经将要审核的更改推送到 Gerrit,即 Git 服务器。只是它们还没有集成到目标分支中,而是在特殊的refs/changes 命名空间中等待审核。
  • 修正了描述。

标签: git gerrit


【解决方案1】:

是的,这是可能的。

让我们退后一步,不要谈论 Gerrit,而是谈论纯 Git,以及 Git 历史记录在本地计算机上的样子。在您的本地历史记录中,您需要有引入 A() 和 B() 的提交 #1,并且在引入 AA() 和 BB() 的提交 #2 之上。当你查看#2 的差异时,它只会显示 AA() 和 BB() 的介绍,而不是之前提交的 A() 和 B() 的介绍。

现在,当您推送到 Gerrit 进行审核时,将为尚未在目标分支中的每个提交创建更改。换句话说,Gerrit 所说的更改直接映射到提交。因此,变更 #2 中的差异正是您第二次提交的差异,无论变更 #1 是否已被审查,审阅者都可以对此发表评论。

一旦两个更改都通过审核,您需要将它们提交以集成到目标分支中。虽然您可以在更改 #1 之前点击更改 #2 的提交按钮,但更改 #2 的集成将等待更改 #1 的集成。这就是维护提交依赖顺序的地方:在集成时,而不是在审查时。

【讨论】:

  • 是说我应该在 #1 提交之上对评论 #2 的更改进行新的提交(而不是修改)并开始评论 #2?
  • 没有。在典型的 Gerrit 工作流程中,所有审核 cmets 都是通过修改/重新设置变更来解决的,即“修复历史记录”,而不是通过在顶部创建除“损坏”变更之外需要进行审核的额外变更。
  • 但是我仍然对你所说的“评论”有点困惑。在您的工作中,审核是由多个更改/提交组成,还是只有一个?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-26
  • 2023-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多