我想知道与gerrit rebase按钮相关的命令来重新绑定这个补丁。 我们的要求“调整基线补丁和提交” 由于大部分时间我们都在下面的错误,当我们提交补丁:需要gerrit的rebase命令
我们的格里特策略设置为“快进”只(不能更改)。
成功提交一个补丁后,我得到下面的错误:
项目的政策要求所有提交的是一个快进。
请本地重订的改变,并再次上传审查
有了底垫按钮,我能够做的底垫。
是否有任何命令/脚本来自动化这个rebase进程。
我想知道与gerrit rebase按钮相关的命令来重新绑定这个补丁。 我们的要求“调整基线补丁和提交” 由于大部分时间我们都在下面的错误,当我们提交补丁:需要gerrit的rebase命令
我们的格里特策略设置为“快进”只(不能更改)。
项目的政策要求所有提交的是一个快进。
有了底垫按钮,我能够做的底垫。
是否有任何命令/脚本来自动化这个rebase进程。
你为什么要自动化它?无论如何,如果更改需要重新分配,这意味着,在审查期间,另一个提交被推送到主分支。所以如果你已经对评论有所改变,就不要提交其他内容。甚至不要同时推动另一项改变。因为如果您在审核时单独进行了2次更改 - 那么第二次提交应该与另一次更改。并在推送任何代码审查之前首先检查是否有任何新的提交远程分支,应首先在本地进行重新分配。
你可以为此写一个python脚本。为此,您需要先获取更改详细信息,然后获取当前的补丁集,然后重新绑定并上传。
步骤:
获取当前补丁集信息使用
ssh -p <port number> <server_name > gerrit query --current-patch-set <change_number> --format=JSON
解析,并得到current_patchset_number并将在第二步和第三步使用裁判。
将更改提取到本地回购。
如果您在gerrit中检查cherry-pick命令,除了ref之外,其它所有更改都是相同的。您将从第一步获得此参考。使用它和樱桃选择您的CL到本地回购。
上传新的补丁集
git push origin HEAD:refs/changes/< current_patchset_number+1 >/<change_number>
我想你的意思是'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
樱桃挑选提交类型基本相同重订之前立即提交(我能想到的唯一的区别是在页脚中添加元数据提交时挑肥拣瘦)所以请详细说明为什么使用该提交类型不是一种选择。 –