我們的項目是多模塊maven項目。該項目依賴於另一個多模塊maven項目。 POMS的關係(包括聚合和繼承方式)像使用gerrit的long rebase
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工作觸發器來運行基本測試。只有構建通過時才能提交更改。也有建立可根據通過格里特評論一些觸發器被要求要運行耗時網絡測試,集成測試等
我的想法
通過力推動在下面的方面,我的意思是,它已經到 旁路格里特即直接推送到分支不的 實際力量推動,再現歷史的git
- 創建
product
升級特性分支,說feature/upgrade
- 確保臨時CI的工作是建立這個分公司w.r.t.新的環境,包括點播那些
- 更改推到這個分支升級所需直到應用程序可以正常運行
- 從時間調整基線上
master
分支時間,以避免在升級結束批量衝突(需要在feature/upgrade
力推送) - 最後,推動所有的變化從
feature/upgrade
到master
(將要求master
力推),現在在主配置CI工作開始使用新創建的臨時職位 類似配置
此id的缺陷ea是力量推動。我們確保分支機構不會受到這種推動,因爲分支機構容易犯錯誤,組織中只有少數人可以提交此類提交。可能是我不知道我可以在這裏使用的一些gerrit功能,或者我的想法是完全錯誤的。我需要知道處理這種情況的最佳方法是什麼。
我不希望發生這種情況。我想要提交驗證。我最終想避免的是通過繞過gerrit來重塑。 – Mukund