是否可以在 gerrit 中进行并行增量审查?
Is it possible to have parallel incremental reviews in gerrit?
假设我有更改#1,我将两个新函数 A() 和 B() 添加到 MyFile.c 。
我发起更改 #1 以在 gerrit 上进行审查,我将其称为审查 #1。
然后,在审查 #1 仍在进行的同时,我介绍了另一个更改 #2,其中我将两个新函数 AA() 和 BB() 添加到相同的 MyFile.c,它们调用 A() 和B() 分别。我称此评论为#2。
我的问题是我是否可以在更改 #1 仍在接受审查(尚未提交)时让我的同行审查更改 #2。显然,我希望在评论 #2 中添加 A() 和 B() 不要显示为新功能,而只是让评论 #2 显示更改 #2 相对于更改 #1 的增量差异。
这可能吗?我该怎么做?
是的,这是可能的。
让我们退后一步,不谈论 Gerrit,而是纯粹的 Git,以及 Git 历史记录在您的本地机器上的样子。在您的本地历史记录中,您需要有引入 A() 和 B() 的提交 #1,以及引入 AA() 和 BB() 的提交 #2。当你查看#2 的 diff 时,它只会显示 AA() 和 BB() 的引入,而不会显示上一次提交的 A() 和 B() 的引入。
现在,当您推送到 Gerrit 进行审核时,将为尚未在目标分支中的每个提交创建更改。换句话说,Gerrit 所说的更改直接映射到提交。因此,更改 #2 中的差异正是您第二次提交的差异,无论更改 #1 是否已被审查,审阅者都可以对此发表评论。
一旦两个更改都通过审核,您需要提交它们以集成到目标分支中。虽然您可以在更改 #1 之前点击更改 #2 的提交按钮,但更改 #2 的集成将一直等待,直到更改 #1 被集成。所以这就是维护提交依赖顺序的地方:在集成时,而不是在审查时。
假设我有更改#1,我将两个新函数 A() 和 B() 添加到 MyFile.c 。 我发起更改 #1 以在 gerrit 上进行审查,我将其称为审查 #1。 然后,在审查 #1 仍在进行的同时,我介绍了另一个更改 #2,其中我将两个新函数 AA() 和 BB() 添加到相同的 MyFile.c,它们调用 A() 和B() 分别。我称此评论为#2。 我的问题是我是否可以在更改 #1 仍在接受审查(尚未提交)时让我的同行审查更改 #2。显然,我希望在评论 #2 中添加 A() 和 B() 不要显示为新功能,而只是让评论 #2 显示更改 #2 相对于更改 #1 的增量差异。
这可能吗?我该怎么做?
是的,这是可能的。
让我们退后一步,不谈论 Gerrit,而是纯粹的 Git,以及 Git 历史记录在您的本地机器上的样子。在您的本地历史记录中,您需要有引入 A() 和 B() 的提交 #1,以及引入 AA() 和 BB() 的提交 #2。当你查看#2 的 diff 时,它只会显示 AA() 和 BB() 的引入,而不会显示上一次提交的 A() 和 B() 的引入。
现在,当您推送到 Gerrit 进行审核时,将为尚未在目标分支中的每个提交创建更改。换句话说,Gerrit 所说的更改直接映射到提交。因此,更改 #2 中的差异正是您第二次提交的差异,无论更改 #1 是否已被审查,审阅者都可以对此发表评论。
一旦两个更改都通过审核,您需要提交它们以集成到目标分支中。虽然您可以在更改 #1 之前点击更改 #2 的提交按钮,但更改 #2 的集成将一直等待,直到更改 #1 被集成。所以这就是维护提交依赖顺序的地方:在集成时,而不是在审查时。