与DevOps相关的一些概念:Trunk Based Development

Trunk Based Development,缩写为TBD,中文就是基于主干的开发。

什么是TBD,无需太多文字,看下图即可(来源http://paulhammant.com/2013/04/05/what-is-trunk-based-development/):

与DevOps相关的一些概念:Trunk Based Development_第1张图片

有人反映看不大懂,好吧,我懒得码字,引用一段TBD的说明文字(来源http://nedwu13.blogspot.kr/2014/01/tbd-what-is-trunk-based-development.html),下面这三句话是关键点:

  • 同一个产品开发的所有人员共享一个Repository,有一个trunk,单一Developer或是Developer团队可以有自己的private branch,所有修改最后都会回到主干
  • 只有在Release时才会有官方的分支,一般Developer不能对Release Branch作动作,只有Release Engineer可以更动Release Branch,当Release Branch完成它的任务,就会被砍掉
  • Bug先在trunk修好,之後把Commit合併到Release Branch,而不是在Release Branch修好再整合到trunk,這樣可以把修改Release Branch的人限制在最小程度。
感谢nedwu13的翻译。

版本管理策略无非两种:基于主干的Trunk Based和基于分支的Feature Branching,而Feature Branching又可以细分为Release Feature Branching、Integration Feature Branching和Build Feature Branching,不管哪种Feature Branching,在DevOps文化里,皆为妖魔鬼怪,存在的主要问题为:

  1. 一个功能模块,或者说是Feature,会存在多个分支上,那么好了,想改点东西,先要知道这个Feature存在在哪几个分支上,然后挨个看一遍,哪个需要改、哪个不需要改,要改的东西可能还不一样,改完了还要挨个测试一遍
  2. 合并困难,那么多分支,分支到主干、主干到分支,多路双向合并,想想都头大,所以一般就不合并了,挨个改一遍好了

三种基于分支的版本管理策略详解,参见链接 http://www.alwaysagileconsulting.com/articles/version-control-strategies/

你可能感兴趣的:(DevOps)