在没有 parents 的情况下在 gerrit 中提交补丁

Submit patch in gerrit without parents

我目前正在我的新公司设置一个 gerrit 服务器。我以前使用 gerrit 几年了,但我从来没有设置过。

我安装了 gerrit 2.13.5,我正在尝试配置它。我有两个最后的问题要解决(我只会在这里讨论一个)。

我有一个提交列表 A->B->C

A是B的parent,B是C的parent

按钮 "Submit including parents" 出现在我的提交 C 中,但我不能 cherry-pick 它进入 gerrit/master 分支,因为 A 和 B 被拒绝。

由于 C 与 A 或 B 无关,但我不想有太多本地分支,所以我已将所有 3 次提交都提交到同一个分支中。

我使用 cherry-pick 提交选项进入 gerrit 配置

[submit]
action = cherry pick
mergeContent = true

我假设使用此选项,我可以 cherry-pick 任何没有直接 parent 依赖项的提交。我曾经在我以前的公司这样做过,但我无法在这里成功地以这种方式设置 gerrit。

如果有人有任何想法或问题,我真的很乐意得到或回答。

干杯。

我的 Gerrit (2.13.6) 版本略有不同,我已尝试在此处重现该问题。我发现了以下内容:

  1. 如果项目策略是"Cherry Pick",按钮显示"Submit"

  1. 如果项目策略是任何其他选项,按钮显示"Submit including parents"

使用第一个选项可以在第一个提交之前毫无问题地提交第二个提交。

因此,我认为检查您是否真的为您的特定项目设置了策略 "Cherry Pick" 是个好主意。如果 "Cherry Pick" 策略设置正确,那么您可以尝试更新到最新的可用版本 (2.13.7)。

在这种情况下,无论您的项目策略如何,还有一种可能性。

  • 单击 Rebase 按钮。
  • 勾选选项Change parent revision
  • 输入 git 分支上任何未提交的更改的 sha-id,您可能希望对其进行变基或分支的 HEAD 提交。

这将为更改创建一个新的补丁集。审查将必须再次进行,并且验证将再次执行。虽然这不是直接提交,但如果您没有 gerrit 服务器设置权限,这会有所帮助。