[英]Detecting if gerrit patch needs a rebase, using gerrit/git command line?
[英]Long rebase using gerrit
我們的項目是多模塊Maven項目。 該項目依賴於另一個多模塊Maven項目。 poms的關系(無論是聚合還是繼承)都像
parent-super-pom
|---parent-module-1
|---parent-module-2
|---parent-module-3
|---...
|---parent-module-n
|---child-super-pom
|---child-module-1
|---child-module-2
|---child-module-3
|---child-module-4
parent
項目中的所有內容都由一個單獨的團隊管理,我們稱之為framework
。 在一切child
項目是由我們的團隊管理,讓我們把它稱為product
。
現在, framework
已升級為使用spring-boot
以及許多其他重大更改。 我們需要開始開發以升級product
以使用framework
的最新技術。 升級過程大約需要一個月的時間(包含許多無法編譯的提交),因為要使應用程序正常工作,需要注意很多更改。 同時, product
還將在舊的Maven環境中自行開發功能。 解決這種情況的最佳方法是什么?
我們使用Gerrit代碼審查。 更改首先在gerrit上進行,有自動的jenkins作業觸發器可運行基本測試。 僅當構建通過時才能提交更改。 還可以基於一些觸發條件,通過Gerrit注釋來要求構建,例如運行耗時的Web測試,集成測試等。
我的點子
在以下情況下, 用力推是指它必須繞過gerrit,即直接推到分支,而不是重新創建git歷史的實際力推
product
創建要升級的功能分支,例如feature/upgrade
master
分支,以避免在升級結束時發生批量沖突(將需要對feature/upgrade
進行強制推送) feature/upgrade
推送到master
(將需要對master
進行強制推送),然后在master
配置CI作業以開始使用與新創建的臨時作業類似的配置 這個想法的缺點是強行推動。 我們確保分支機構不會受到這種推動,因為這會使分支機構容易出錯,並且組織中只有少數人可以提交此類提交。 可能是我沒有意識到我可以在此處利用的某些Gerrit功能,或者我的想法是完全錯誤的。 我需要知道處理這種情況的最佳方法是什么。
為什么不設置監視gerrit事件的小型進程,如果將提交推送到refs/for/$your_feature_branch
那么它將自動將“ Verified
標志設置為+1。 您甚至可以等待Jenkins將“ Verified
設置為該分支上的任何值,然后根據該事件再次將“ Verified
設置為+1。 這樣,您可以確保能夠獨立於Jenkins失敗的構建而合並提交。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.