说到版本控制,大多数人的大脑中都一定会立刻想到 git
和 svn
吧,只可惜,这次的主角可不是他们
虽说 git 和 svn 虽好,对于一些项目也能够进行很好的开发,但是呢,对于某些场景,还是有些 hold 不住的
比如,我们来举一个场景:
现在我们的源码大约有 500M,然后呢,采用的是分支开发,主干发布,但是呢,因为我们是提供中间层 service 的,迭代周期很短,对于一些特殊的客户,会时常有些特殊的逻辑处理,每个开发者可能会有好几个分支进行开发,这个样子的话,对于这些特殊逻辑,特殊版本的管理就非常的不方便,而且,因为每次都要拉出来一个分支,然后改动可能非常小,这就造成了非常大量的冗余量
于是,这个场景中,冗余量、大量迭代版本的管理,就上升到了我们的一个主要问题
如何解决呢?
单体代码库
在这里,我们引入一个节点(标签)的概念,先来说一下整体思路
现在,我们就抛弃 git
和 svn
的思想,把所有的代码都放在一起,通过控制 节点粒度
来控制整体的冗余
首先,节点粒度我们先设定为以文件为单位,同时呢,约定我们的命名规范,文件名.节点标识.php
,例如 Test.v1.php