我們已經在我們的項目中達到了一個需要進行生產部署但還需要持續開發未來功能的點。我們的源代碼管理目前有一個開發分支。在我以前的公司中,開發,集成,生產部門設立了3個分公司系統。功能開發是在開發中完成的,在集成和生產中進行測試始終是在當前生產環境中運行的代碼(除了從Integaration到Production以及完成部署完成合並的時間之外)。版本控制(TFS)的兩種方法:需要建議
每當進行生產更改或合併到現場部署的生產中時,新的歸檔分支將被移出生產並給出版本號。對較高分支的任何更改都會合並回來,因此Production中的更改將使其回到開發階段。它的工作,但我一直沒有看到需要一個持續的集成和生產分支。
我真的不喜歡這個系統的兩個方面:1)從集成分支合併到生產分支:我希望每次都有一個「乾淨的」生產分支,即使它們在合併後應該同步2)該系統不允許同時運行不同版本的代碼的系統的多個部署,儘管這對於我曾經工作過的團隊來說並不是必需的。
我聽說過這個模型很常見,但在系統中,我建立我現在提出了以下幾點:
有一個發展分支,創建一個新的發佈分支每次發展爲準備下一個部署生產。版本分支被賦予版本號,然後再次分支到歸檔分支。測試在Release分支上完成。部署完成後,在發佈分支中完成任何生產修復,然後在部署獲得批准後,創建新的歸檔分支,並添加次要版本號增量。當開發的新部署準備就緒時,將創建一個新的發佈分支...
對我來說,這更簡單,實際上更好:沒有Integaration分支(較少合併),並且有一個新的Production(發佈)爲每個部署分支並迎合當前生產版本。我錯過了什麼?爲什麼選擇開發,集成,生產模式?
感謝