我们有一个Gerrit项目,“提交类型”设置为“必要时重新设置”。更改的自动验证是通过Jenkins构建完成的。
如果存在并发更改(例如,更改A和B都基于同一父级),则当一个更改(例如A)得到审核,提交和合并时,另一个更改(例如B)将具有一个父级“不是当前的”
这部分我了解。
我不明白的是:如果我们已经选择了提交类型为“必要时重新设置”,为什么Gerrit仍会说“无法合并”?为什么不自动将B重新设基?
实际上,我确实看到一些并发的更改已收到自动变基的处理。但这并非一直存在。为什么?
通常,在Gerrit Web UI上,B的父母的哈希旁边将有一个橙色的点,上面写着“不最新-可能会变基”。是否会出现“不是当前状态-无法重新设置基准”的情况?
(如果可以重新设置基准,那么Gerrit为什么不自动执行呢?)
最后一个问题:当按下[Rebase]按钮时,将弹出一个标题为“代码审查-更改基准”的窗口。然后有一个复选框“更改父修订版”和一个文本字段“(主题,更改编号或保留为空)”。我们应该如何使用复选框和文本字段?
谢谢!
1)自动变基
首先在以下位置检查您的项目是否启用了内容合并:
Projects > List > YOUR-PROJECT > General > Allow content merges = true
然后请记住,如果必须手动解决冲突,则Gerrit无法自动执行变基。在这些情况下,您需要在本地执行变基,解决冲突并将另一补丁集推送到Gerrit。
2)变基选项
该复选框用于选择要在基准库中使用的其他父修订版。默认的父修订版是:
如果更改不依赖于另一个未完成的更改,则将重新基于目标分支的尖端。
如果更改依赖于另一个未完成的更改,则将基于该其他更改的当前补丁集重新建立。
在此处查看更多信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句