本地版本控制系统出现之前,很多人为了保存不同版本的文件,通常是通过改名病添加时间戳的方式来区别不同的版本文件,这种方式非常简单,同时这种方式也非常容易造成文件混乱。所以很早就有人开发了许多种本地版本控制系统,其原理也非常简单,即使用一个简单的数据库记录文件的每次变更。其原理示意图如下所示:
相对与本地版本控制系统,集中式版本控制系统解决了本地版本控制系统仅在单个的操作系统之上运行的缺陷,实现了在不同的操作系统之上运行,这就给开发者之间进行团队合作提供了条件。集中式版本控制系统的原理非常与本地版本控制系统的原理类似,所不同的是集中式版本管理系统有一个单一的集中管理的服务器,该服务器可以保存所有的文件修改版本信息,参与团队开发的客户端连接这台服务器之后,就可以提交更新和去除最新的文件。其原理示意图如下所示:
尽管集中式版本控制系统已经能够满足大部分的需求,但由于集中式版本控制系统本身就存在单点故障问题,即如果中央服务器宕机或发生故障,那么各个客户端将无法正常工作。分布式版本控制系统的工作原理在于客户端并不只提取各个客户端上的最新版本的文件,而是把中央服务器上的代码仓库完整地镜像下来。这样,当中央服务器发生故障之后,就可以利用任何一个客户端的本地仓库进行中央仓库的恢复。因为每一次的提取操作,就是对中央服务器仓库的完整备份。其原理示意图如下所示:
原文地址:http://blog.csdn.net/zs234/article/details/26388217