在没有父母的情况下提交gerrit补丁

时间:2017-04-05 12:37:33

标签: git patch gerrit

我目前正在新公司设立gerrit服务器。我曾经使用gerrit几年,但我从未设置过。

我安装了gerrit 2.13.5并且我正在尝试配置它。我有两个最后的问题我试图修复(我在这里只讨论一个)。

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

A是B的父级,B是C的父级

  • 有人拒绝(-2)我的补丁A和B(因为他们不好)但接受C(+2)。
  • C与A和B完全无关(另一个文件夹中的另一个文件进入我的项目)

按钮"提交包括父母"在我的提交C中出现,但由于A和B被拒绝,我无法将其选择到gerrit / master分支中。

由于C与A或B无关,但我不想拥有多个本地分支,我已经完成了对同一分支的所有3次提交。

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

[submit]
action = cherry pick
mergeContent = true

我认为使用这个选项,我可以挑选任何没有直接父母依赖的提交。我曾经在我以前的公司这样做,但我不能成功地在这里设置gerrit。

如果有人有任何想法或问题,我会非常愿意接受或回答。

干杯。

2 个答案:

答案 0 :(得分:5)

我有一个非常不同版本的Gerrit(2.13.6),我试图在这里重现这个问题。我发现了以下内容:

  1. 如果项目策略是" Cherry Pick",按钮显示"提交"
  2. enter image description here

    1. 如果项目策略是任何其他选项,则按钮显示"提交包括父母"
    2. enter image description here

      使用第一个选项可以在第一个提交之前提交第二个提交而没有问题。

      所以,我认为最好检查一下你是否真的有策略" Cherry Pick"为您的特定项目设置。如果" Cherry Pick"策略设置正确,然后您可以尝试更新最后一个可用版本(2.13.7)。

答案 1 :(得分:1)

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

  • 点击Rebase按钮。
  • 选中Change parent revision
  • 选项
  • 输入您可能要重新登录的分支上的任何未提交更改的git的sha-id或分支的HEAD提交。

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