Gerrit 自動提交

Fuchsia 的 Gerrit 程式碼審查網站支援自動變更提交功能。任何選擇加入的變更,在獲得核准並通過提交前檢查後,都會自動提交。

用量

使用「回覆」對話方塊在 Gerrit UI 中新增審查者時,請為「Fuchsia-Auto-Submit」標籤選取「+1」

示範如何在 Gerrit 中設定 Fuchsia-Auto-Submit +1

變更符合所有提交規定 (通常是Code-Review +2 票數,以及所有受影響檔案的擁有者核准) 後,自動提交機器人會套用Commit-Queue +2 標籤。所有提交前檢查通過後,系統就會自動提交變更。

如果您希望變更在核准後盡快生效,建議您在送交變更項目進行審查前 (或同時) 設定 Commit-Queue +1。當自動提交功能套用「Commit-Queue +2」標籤時,系統會略過重新執行過去 24 小時內已通過的任何檢查,因此提交作業通常不需要等待檢查重新執行。

常見問題

自動提交功能提交變更需要多久時間?

自動提交功能通常會在變更核准後的 30 秒內,將 Commit-Queue +2 套用至變更,但最久可能需要 2 分鐘。

自動提交功能是以工作形式實作,每 30 秒就會向 Gerrit 查詢可提交的變更,但工作重新啟動時可能會偶爾延遲。

如何判斷變更是否已啟用自動提交功能?

如果變更作者已選擇自動提交,Gerrit UI 左欄的「Trigger Votes」下方會顯示「Fuchsia-Auto-Submit +1」圖塊。

Fuchsia-Auto-Submit +1 資訊方塊

我的變更無效,但自動提交功能仍會重試預提交作業。為什麼?

自動提交會使用指數輪詢重試預提交四次。它會刻意假設任何失敗都是由於潛在的錯誤或 HEAD 的暫時性中斷,而導致誤判。這樣一來,自動提交功能就能對抗誤判拒絕的情況,但代價是,系統會不時針對 CL 重試預提交作業,而這些 CL 確實有問題,無法通過預提交檢查。

如果自動提交的預提交嘗試連續失敗四次,自動提交會停止重試,並從 CL 移除 Fuchsia-Auto-Submit +1 標籤。如要繼續重試,您可以手動將 Fuchsia-Auto-Submit +1 新增回 CL,系統就會再重試四次預提交。

如果擔心重試失敗,請在傳送變更送審前,先執行一次預提交模擬測試,或不要使用自動提交功能。或者,如果您擔心不穩定性,請使用 Multiply 指令

我是啟用自動提交功能的變更項目審查者。我可以不提交就核准嗎?

如果您在授予 Code-Review +2 時留下未解決的註解,自動提交機器人會等到所有註解都解決後,才會提交變更。

我還需要查看 FYI 建構工具的結果。紅色 FYI 建構工具會阻止自動提交嗎?

透過「Choose Tryjobs」選單新增的參考資訊建構工具,不會阻擋自動提交功能。請謹慎使用 FYI 建構工具。