簡體   English   中英

自動rebase gerrit變化

[英]Automatically rebase gerrit Changes

我當前的開發環境包含一個Git / Gerrit設置,它運行幾個Jenkins作業來驗證提交的更改。

Gerrit中的提交類型設置為“僅限快進”。

問題”:

  1. 更改A被推送到gerrit,觸發了Jenkins的驗證構建
  2. 將B更改為gerrit,觸發Jenkins的驗證構建
  3. 變更A獲得“已驗證+1”(來自詹金斯)
  4. 變更B獲得“已驗證+1”(來自詹金斯)
  5. 變更A已提交

(信息: 更改A / B是在同一分支上的提交,並具有相同的父提交ID)

此時無法再提交更改B ,因為其父級不指向分支的HEAD。 所以Change B的開發者必須手動改變他的變化。 (此rebase創建一個新的補丁集,自動觸發Jenkins作業)

我怎樣才能擺脫這個手動步驟?

所以我發現我可以將Gerrit項目的提交類型更改為“Rebase if if needed”(我也可以告訴Gerrit自動解決沖突)。 這里的問題是,在重新定位和解決潛在的沖突之后,合並更改而不重新運行Jenkins驗證作業。 由於變基或沖突解決而可能引入的潛在錯誤無法被檢測到。

有沒有辦法自動更改更改(在示例更改B中 )並重新運行測試,當它已過時?

開箱即用是不可能的,但您可以編寫一個偵聽事件的服務(例如,通過流事件SSH命令 ),並在將更改提交到同一分支時重新打開發往特定分支的更改。 為此編寫插件應該相當容易,但這顯然也會產生更緊密的耦合。

如果您使用櫻桃挑選功能,似乎可以完成。 看到另一個答案: Gerrit總是在提交補丁集之前進行rebase以避免合並提交

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM