假设我已经改变#1,我将两个新函数A()和B()添加到MyFile.c。 我点火变化#1将在gerrit上进行评论,我称之为评论#1。 然后,虽然评论#1仍在继续,我将介绍另一个更改#2,其中我将两个新函数AA()和BB()添加到同一个MyFile.c,在那里他们调用A()和B( ) 分别。我称此评论为#2。 我的问题是,我是否可以让我的同行审查#2变更,而变更#1仍在接受审核(尚未提交)。显然,我希望在评论#2中添加A()和B()不是为了显示新功能,而只是为了让评论#2显示关于变化#1的变化#2的增量差异。
这可能吗?我怎么能这样做?
答案 0 :(得分:2)
是的,这是可能的。
让我们退后一步,不要谈论Gerrit,而是谈谈纯Git,以及Git历史在本地机器上的表现。在本地历史记录中,您需要提交引入A()和B()的提交#1,以及引入AA()和BB()的提交#2。当你看到#2的差异时,它只会显示AA()和BB()的引入,而不是前一次提交的A()和B()的引入。
现在,当您推送到Gerrit进行审核时,会为尚未在目标分支中的每个提交创建更改。换句话说,Gerrit所谓的更改直接映射到提交。因此,变更#2中的差异恰恰是您第二次提交的差异,无论是否已经审核了变更#1,审核人员都可以对此进行评论。
一旦检查了两个更改,您需要提交它们以便集成到目标分支。虽然您可以在变更#1之前点击变更#2的提交按钮,但变更#2的集成将处于待处理状态,直到变更#1已集成。这样就可以保持提交依赖关系的顺序:在集成时,而不是在审核时。