1 Trunk Based
Trunk Based只有一个master主干,每个人都在本地写新代码,达到可提交程度的时候,就往master合并。如下图:
关键点:
1. 这种模式在本地和 master 之间不存在一个缓冲的区域,所以从本地 commit 到 master 时,需要确保经过了本地测试可用。
2. 过程足够简单,节省项目一致性成本。
3. 对项目或产品计划要求不高。有基本的WBS,任务计划,里程碑计划就行了。而且由于计划复杂度要求不高,修改计划的成本也就比较低。这点最本质的说法,就是产品只有一个 release线。
4. ABC三个模块同时开发时,一旦决定只上线AB模块,由于都在 master,线上版本其实也包含C模块的部分。当然可以也有办法去回避这个问题,比如 Feature Toggle,功能开关。
最佳实践:
1. 对项目和定义清晰的产品非常友好。不适合走 IPD 过程而形成的 VRM 产品线IPD和VRM。不太适合探索型产品,原因是探索型产品可能需要做各种Feature,最终有些留下有些不留,在TrunkBased模式下,没有Feature分支,剔除Feature不太方便。
2. 对持续集成,