請考慮以下情況:如何使這個MKS源代碼完整性工作流程適應Git?
- 目前使用MKS源完整性(是的,它傷害)。
- 每週兩次,一些開發人員在開發分支中檢入一個功能(或其中的一部分)。
- 一個功能的簽入與其他功能的簽入交織在一起。
- 例如:轉1,3,5是用於特徵A,修訂版2爲特徵B,第4版用於特徵C.
- 每週一次,驗證功能在生產分支檢查。
- 大多數情況下需要合併來自未驗證功能的更改。
- 示例:功能A(從上方)投入生產,但不具備功能B和C,因此我們不想採用第1,3,5(revard 2和4)版,但第3版可能也需要與第二次修訂版在開發過程中的變化合並;合併將被撤消。
遷移到Git的(耶!)。什麼工作流程會尊重這個約束?
我已經讀了很多關於它的內容,每一個工作流程似乎都是基於這樣的假設:在時間t,特徵A,B和C將會完成。如果不是的話,我估計是延遲了。
在我的情況下,有沒有趕上完成功能的時間,永遠。每個開發人員都在處理一個或多個功能。如果它已經準備就緒,它將投入生產。如果不是,繼續細化。每個星期都會有生產生產。極少數情況下,沒有新的代碼更改進入生產環境,但仍然是建立的。大多數情況下十幾種功能都在生產中。
希望它很清楚。讓我知道你是否需要更多細節!
認爲(編輯)工作流程:在私有分支上的功能
- 工作
- 推首次來發展,作爲一個單一提交
- 在專用分支繼續工作
- 推一些發展的更多變化,仍然作爲一個單一的承諾
- 功能已準備好生產;合併專用生產分公司
再次基於工作流程:
在步驟2中,私有分支可能發展的最新頭重訂基期,前推。但是,如果這樣做,在步驟4重新綁定時會發生什麼?所有從第一次發行的變更(現在是發展的一部分)中的所有變化都將從新設立的私人分支中剝離出來,不是嗎?這會在生產中產生問題。
合併的工作流程:
在步驟2中,私有分支可以與最新的開發頭部合併;
合併提交可以在私有分支中丟棄,保持私有分支不受開發分支中發生的情況影響。但是這樣做,每次在開發過程中檢查某些內容時,都必須一次又一次地進行相同的合併。
可以保留合併提交,推動開發只需要合併自上次簽入以來的新增內容。但是當進行生產時,私人部門現在會從其他功能中進行更改。櫻桃採摘只能用於選擇相關的變更集,但這需要開發人員手動確定簽入的內容並容易出錯。
我已經使用過Git並理解它是如何工作的,至少在某種程度上。功能分支絕對是我會用的東西。但我不確定是否正確維護該功能分支的最佳方式。由於開發分支在其生命週期中會有多次推送,並且可能會發生多次合併/衝突,因此當功能分支最終準備就緒時,它可能包含部分尚未準備好的功能。 – Jeremy
每個功能應該有它自己的功能分支。只有就緒功能才能進入根分支(開發或主),並且功能分支將根分支合併到它們中(反之亦然)以保持最新。功能完成後,刪除分支,這不是維護頭疼 –
是的,每個功能都有自己的分支。但是開發人員不能完全測試自己的私人分支,因爲測試過多,處理大量不同的DBMS,並且讓每個開發人員的客戶都保持最新,這將是一場噩夢。因此,要測試私有特性分支中所做的更改,必須每隔一段時間將更改與其他開發人員的更改集成到開發分支中。 – Jeremy