測試開發之源码篇-代码分支策略
原創-
2023-05-31 15:04:15
-
3237
本篇目錄
一、主幹開發

- 開發持續向主幹提交代碼,並基于主幹進行測試驗證;
- 在主幹上修複缺陷,再同步修正的代碼到需要的發布分支上;
- 每次均基于主幹,創建指定版本的發布分支;
- 可享受持續集成、驗證、交付帶來的好處,消除不必要的分支切換和代碼合並工作;
- 如果有衆多成員同時工作在一個主幹上,相互間容易幹擾、引發代碼沖突等問題;
- 可借助特性切換機制(如部署時的配置、代碼中的判斷),來規避不同版本間的差異(如隱藏不成熟的特性,賦予社區版和專業版不同功能),容易引發新的問題和複雜性。
二、Git Flow

- 開發人員在特性分支上實現新的特性,並提交代碼;
- 頻繁將特性分支上的代碼合並到開發分支,並做集成測試;
- 集成開發分支上的代码到發布分支,完成集成和系统测试;
- 推送發布分支上的代码到主幹进行发布;
- 在修複分支上修複线上缺陷,验证通过后发布补丁,并同步到主幹和開發分支;
- 始终将主幹视作整个项目的基线,并在其上对标各个版本的快照;
- 如果長時間在特性分支上工作,可能會導致朝開發分支上合並時産生沖突;
- 可选择性地省略開發或發布分支,在主幹上完成持续集成和发布;
- 可选择性地省略修複分支,在特性分支上完成线上问题的修複。
三、Github Flow

- 從主分支創建一個特性分支,用于開發;
- 在特性分支上完成開發后,提交一个Pull Request(PR)申请向主分支推送代碼;
- 組織相關人員對PR代碼進行審查,合並主分支上的代碼進行測試和驗證;
- PR批准後,合並代碼到主分支,刪除特性分支;
- 編譯、打包主分支上的最新代碼,部署到生産環境;
- 該模型頻繁合並代碼,進行自動化集成、驗證和部署,符合CI和DevOps工程學理念;
- 可持续向主幹集成有价值增量,尽早在可运行的完整系统上进行测试验证,符合敏捷開發的精神;
- 该模型更适合于運營在相同环境下、沿着单线演进的项目,如在线服務;
- 对于一些在不同客户处、有很多不同版本的産品,以及规模较大的工程或团队,会有一定难度。
四、Gitlab Flow

- 对应Github Flow中的Pull Request(PR),存在一个名为Merge Request(MR)的过程;
- 在發布側(圖中Master分支以上部分),增加了 预産品分支和産品分支;
- 從主分支到産品分支代碼的Promotion,需逐層提交MR進行評審和驗證;
- 通常在Master分支上修複缺陷,再逐层Promote到上层産品分支;
- 需維護集成環境(對應Master分支)、預上線環境(對應预産品分支)和生産環境(對應産品分支)多個環境;
- 相比Github Flow,更适合于同时需要维护多个版本的、对外发布的産品;
- 推荐以单个特性的颗粒度,完成從Feature分支到Master分支的Merge Request,以方便日后在産品的不同版本编号(如V1.0、V2.0)、不同版本系列(如社区版、专业版)上,进行功能的划分和组合。
-
禅道産品
禅道開源版 禅道企業版 禅道旗艦版 禅道IPD版 -
核心功能
産品管理 項目管理 質量管理 效能管理 -
使用文檔
基本版手冊 企業版手冊 旗艦版手冊 IPD版手冊 開發中心手册 -
幫助中心
积分問答 常見問題 論壇交流 使用視頻 Gitee GitHub -
關于我們
關于我們 禅道軟件 最新動態 禅道活動 -
禅道社區
禅道博客 積分排行 積分商城 禅道書院 -
聯系方式
聯系人:丁芝 電話:17663906485 微信:17663906485 Q Q:1481227768北京、上海、深圳分部
友情鏈接:
ZTF自動化測試框架
ZenData測試數據生成器
喧喧IM
敏捷開發
敏捷咨詢
測試窩
悅庫網盤
Ledge知識平台
渠成軟件
ZDOO全協同企業管理軟件
融管理社區
ZenDAS數據分析工具
ZenShot跨平台截圖工具
飛信釘即時通訊解決方案
項目管理
IPD學習網
PMP百科網
艾體驗
創無記2049