我想知道與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
櫻桃挑選提交類型基本相同重訂之前立即提交(我能想到的唯一的區別是在頁腳中添加元數據提交時挑肥揀瘦)所以請詳細說明爲什麼使用該提交類型不是一種選擇。 –