Gerrit 自動提交

Fuchsia 的 Gerrit 程式碼審查網站支援自動變更提交功能。選擇加入的變更會在通過核准並通過預先提交檢查後自動提交。

用量

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

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

您的變更符合所有提交要求 (通常是針對「程式碼審查 + 2」投票並驗證所有受影響檔案的擁有者),自動提交機器人會套用「Commit-Queue +2」標籤。通過所有預先提交檢查後,您的變更就會自動提交。

如果您想在核准後盡快實現變更,建議您在將變更送交審核之前 (或同時設定) 設定 Commit-Queue +1。自動套用功能套用「Commit-Queue +2」標籤時,略過重新執行過去 24 小時內完成的任何檢查,因此提交作業通常不需要等待重新執行檢查。

常見問題

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

自動提交功能通常會在變更獲準後的 30 秒內對變更套用 Commit-Queue +2,但最多可能需要 2 分鐘。

自動提交功能會實作為工作,可讓 Gerrit 每 30 秒輪詢一次可提交資料表的變更,但重新啟動工作時可能偶爾會有延遲。

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

如果變更內容的作者已啟用自動提交功能,Gerrit UI 左側欄中的「Trigger Elections」(觸發投票) 下方會顯示「Fuchsia-Auto-Submit +1」圖塊。

Fuchsia-Auto-Submit +1 動態磚

我的變更無效,但自動提交功能仍不斷重新提交。原因是什麼?

這項功能會刻意忽略先前提交前執行結果的結果。它假設所有失敗情形都是因 HEAD 的潛在罕見或暫時故障而誤判。如此一來,自動提交功能就能更靈活地拒絕遭拒,但有時也會針對嚴重損毀的 CL 重新提交預先提交,因此不希望通過預先提交檢查。

只要未有人對變更採取行動,自動提交功能就會在 4 次嘗試後停止重試。每次有人操作 (上傳新的修補程式集、註解等) 後,重試計數器都會重設。

如果擔心重試有誤,請務必先預先提交模擬測試票證再將變更送審,或不要使用自動提交功能。如果您擔心不穩定,請使用 Multiply 指令

我是針對啟用自動提交功能的變更項目審查人員。我可以在不提交的情況下予以核准嗎?

如果您在授予「Code-Review +2」(程式碼審查 +2) 時留下未解決的註解,則在所有註解解決之前,自動提交機器人都不會提交變更。

不過,變更作者仍可手動設定 Commit-Queue +2 來提交變更。如果您認為不應提交變更,建議您暫緩程式碼審查 +2;如果其他審查人員已核准該項變更,請設定「Code-Review -2」