多版本库协同网站开发方法浅谈

前言

大多数时候,我们在开发一个项目的时候,只对应一个版本库,早期的时候我们用SVN,后来我们更常用Git。一般来说这样也就足够了,我这里和大家探讨的是多版本库协同工作的可能性。

Git与SVN同时用

说到这个话题,大家可以在网上搜到一大把文章,一般的场景是说我之前用的SVN,或者公司中心版本库是SVN,但我开发时想用Git进行版本控制之类的。是的这完全可以做得到,只需要让SVN忽略Git信息文件夹.git,Git忽略SVN信息文件夹.svn即可。

注:SVN忽略Git的最佳实践是把配置写在客户端全局,而Git忽略SVN可以在Git的.gitignore中配置,而Git忽略Git则是Git内置的特性。

换一个思路

我这里想说的是多版本库协同,不仅是SVN与Git,也可以是Git与Git,一个大的项目下,各个组件的文件夹分别指向各自的版本库(一般组件版本库我们用Git)。

为什么要这么做呢,意味着某些复用组件,我可以单独开发和测试,而对于大的项目而言,只是这个组件的其中一个调用实例。

注意事项

这样我们在开发项目时,如果改动了一个组件,我们需要先提交到组件版本库,然后我们可以有几个选择:

  1. 如果初次引用,只需要删除同名文件夹,重新git clone即可。
  2. 如果只有自己在维护,可以直接同时提交给本地项目。
  3. 如果组件本身是多人维护的,那么我们可以git pull拉回最新代码,然后在本地项目完成对兼容性的测试。

好处在哪里?

如果这样划分项目,我们除了得到一个可以工作的项目之外,还可以得到若干可复用的组件。对于一些项目型公司来说,会逐渐积累起自己的核心竞争力。

当然,这已经非常类似于一些组件依赖的包管理工具的核心原理了,所以这里的做法是在没有包管理规范的前提下,提炼复用组件的一种思路。