版本控制的集中式分布和分布式分布

 

先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

 

集中式

  CVCS的版本库集中存放在中央服务器,而工作时都是用自己的电脑,所以要先从中央服务器取得最新的版本,然后工作完后再将自己的代码推送给中央服务器。

  CVS:最早的、开源、免费。由于自身设计的问题,会造成提交文件不完整、版本库莫名其妙损坏的情况

  SVN:开源、免费。修正了CVS的一些稳定性问题,是目前用得最多的集中式版本库控制系统

  ClearCase:收费、安装比Windows还大、运行比蜗牛还慢。IBM 收购了原本制作的Rational公司

  VSS:集成在Visual Studio中。反人类的设计?

  集中式版本控制系统最大的问题就是必须联网才能工作,受网络状况、带宽影响。

central-repo

分布式

  DVCS没有中央服务器(也可以有),允许开发人员组实现他们选择的几乎任何工作流,每个人的电脑上都是一个完整的版本库,所以不需要联网。如何多人协作? 如:你修改了文件A,同事修改了文件A,此时只需把各自的修改推送给对方,就可以互相看到对方的修改了。

  Git、BitKeeper(促使Git诞生)、Mercurial和Bazaar等。

distributed-repo

特点与比较

集中式:

  1. 通过与中心服务器的连接执行所有操作,必须联网
  2. 适合开发人数不多的项目开发

 

分布式:

  1. 快速,本地客户机操作,不联网也不影响工作,离线工作,DVCS 比 Subversion 快大约3-10倍
  2. 可以实现非常灵活的工作流(传统的集中式工作流 + 特殊工作流 + 特殊工作流和集中式工作流的组合)
  3. 安全性更高,因为每个人电脑里都是完整的版本库,坏了复制一份即可,CVCS中央服务器出问题就GG      
  4. 两台电脑互相访问不了或某一台电脑未开机不能执行复制(交换修改)时,通常有一台电脑充当中央服务器 
  5. 适合大项目

 

集中式版本控制主要特点是集中存放所有资料,所有人的所有变动都更新到中央服务器中。同时所有相关人员想要进行相关浏览和修改,都需要从中央服务器下载最新版资料才能开展工作,所以对网络比较依赖。如何直接修改忘记下载最新版或者网络断掉,整个工作就会受到影响。

而分布式版本控制系统的特点是分布式,相关人员的电脑都是一个关键节点,每一个点都拥有所有的资料和变动记录。所以每个人都可以独立进行改动资料,并且所有的改动都是在完整资料信息的环境下进行的。当有网络时在进行提交更新,此时所有人的信息都更新到一个临时中心服务中,供所有人更新信息。而且有详细的变更记录,解决了我做了什么,你做了什么,你在什么地方做了怎样的变动,这些沟通的信息都自动展示在你的眼前,减少了大量的沟通成本,并且能够保证所有人的资料都是最新的。从这一点来看,分布式的资料安全性要比集中式高很多,而且他的灵活度也很高,不需要专门的管理人员来管理所有人的更新操作,对于提高工作效率有很大的帮助。

集中式和分布式的区别:

从集中式和分布式版本管理系统的流程图的比较之后我们可以直观的看出,两者的不同。 但是分布式比集中式的优势,不仅仅在于近乎全部的本地化操作,

我们可以进一步想想,一个大的项目,有可以分为不同的小组之间进行协助,每个小组有不同的研发方向。这就需要系统支持小组内的成员进行协作开发,同步工程。再进一步, 小组和小组之间进行协作开发。同步工程。这在集中式的管理系统中是不可能实现的。

另外分布式也比集中式更加安全,每次提取项目,就是把整个项目完成的镜像下来,这么一来,任何一处的协同工作用的服务器发生故障,事后都可以用任何一个镜像的仓库恢复。

 

 

      

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值