Git 需要gerrit的rebase命令
我想知道与gerrit rebase按钮关联的命令,以重新设置补丁的基础。 我们的要求重新设置补丁的基础并提交 由于大多数情况下,我们在提交修补程序时都会出现以下错误: 我们的Gerrit政策设置为快进,但不能更改 成功提交一个修补程序后,我收到以下错误: 项目政策要求所有提交的文件都是快进的 请在本地重新设置更改的基础,然后再次上载以供审阅 使用rebase按钮,我可以进行rebaseGit 需要gerrit的rebase命令,git,gerrit,Git,Gerrit,我想知道与gerrit rebase按钮关联的命令,以重新设置补丁的基础。 我们的要求重新设置补丁的基础并提交 由于大多数情况下,我们在提交修补程序时都会出现以下错误: 我们的Gerrit政策设置为快进,但不能更改 成功提交一个修补程序后,我收到以下错误: 项目政策要求所有提交的文件都是快进的 请在本地重新设置更改的基础,然后再次上载以供审阅 使用rebase按钮,我可以进行rebase 是否有任何命令/脚本可以自动执行此重新基础过程。为什么要自动执行此过程?无论如何,如果更改需要重基,这意味着
是否有任何命令/脚本可以自动执行此重新基础过程。为什么要自动执行此过程?无论如何,如果更改需要重基,这意味着在审查期间,另一个提交将推送到主分支。所以,如果你已经在复习中有所改变,就不要再提交任何东西。甚至不要同时推动另一个变化。因为若你们在评审时有两个单独的变更,那个么第二个提交的变更应该和另一个变更重新建立基础。在推送任何代码来查看之前,首先检查远程分支上是否有任何新的提交,这些提交应该首先在本地重新设置基础。您可以为此编写一个python脚本。为此,您需要首先获取更改详细信息,然后获取当前补丁集,然后重新设置基础并上载 步骤: 使用获取当前补丁集详细信息
ssh -p <port number> <server_name > gerrit query --current-patch-set <change_number> --format=JSON
解析它并获取当前的补丁集编号和引用,这些编号和引用将在步骤2和步骤3中使用
获取对本地回购的更改
如果您在gerrit中检查cherry pick命令,除了ref之外,其他所有更改都是相同的。您将从第一步得到这个ref。利用这一点和樱桃选择你的CL到当地回购
上传一个新的补丁集
git push origin HEAD:refs/changes/< current_patchset_number+1 >/< change_number >
创建新作业,并在Gerrit作业结束时使用Gerrit插件触发它。
第一个作业更新了Gerrit+2代码审查+1验证并触发第二个作业并通过所有参数。
现在,如果这是head,您可以提交,如果不是,则可以重新设置基础。
Cherry pick提交类型基本上与提交前的重定基调相同。我能想到的唯一区别是在Cherry pick提交时在提交的页脚中添加了元数据,因此请详细说明为什么不使用该提交类型。我想你的意思是HEAD:refs/changes/
#!/bin/bash
sleep 10
echo $WORKSPACE
echo 'ssh -p 29418 gerrit-server gerrit review --project switch-dev --rebase' $GERRIT_CHANGE_NUMBER,$GERRIT_PATCHSET_NUMBER
cd $WORKSPACE
if [ $GERRIT_PATCHSET_NUMBER -eq '1' ] ; then
ssh -p 29418 gerrit-serve gerrit review --project switch-dev --submit $GERRIT_CHANGE_NUMBER,$GERRIT_PATCHSET_NUMBER
ssh -p 29418 gerrit-serve gerrit review --project switch-dev --rebase $GERRIT_CHANGE_NUMBER,$GERRIT_PATCHSET_NUMBER
fi
if [ $GERRIT_PATCHSET_NUMBER -eq '2' ] ; then
ssh -p 29418 gerrit-serve gerrit review --project switch-dev --submit $GERRIT_CHANGE_NUMBER,$GERRIT_PATCHSET_NUMBER
fi