软件版本控制工具的发展和对比分析

软件版本控制工具的发展和对比分析 前言

软件配置管理工具也叫版本控制工具,软件的版本控制提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基础设施。版本控制软件的最高目标,是支持软件公司的配置管理活动,追踪多个版本的开发和维护活动,及时发布软件。下面我们一起来看看配置管理工具的发展史和详细的功能对比。

版本控制工具的历史和发展趋势1

版本控制产品非常普通而且很流行。然而,它经历了几十年的不断创新,在开发人员不断的努力下,代码管理变得非常简单而且有效。

第一代版本控制工具:

单个文件保留多个版本,记录单个文件从一个版本到下一个之间的变化。

第二代版本控制工具:

集中式的版本控制方式,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。

第三代版本控制工具:

分布式的版本控制方式,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库。

发展走势小结:

随着版本控制工具的发展,分布式的版本控制工具已经逐渐取代集中式版本控制工具,逐渐成为主流。在各种分布式的版本控制工具中,GIT由于其开源性和知名度,当仁不让的成为了主角。

上图是来源自google的趋势统计,可以看出clearcase、SVN、Mecury、GIT产品这些年的使用趋势。其中ClearCase的使用一直不高;SVN在经历了一段时间高峰之后,近年来已经被逐步替换;Mecury曾经也赢得了一部分市场,但是名气没有GIT大,近年来使用的人也是越来越少;GIT在这些年是一路上升,使用的人越来越多。

主流版本控制工具功能及优劣对比2

在集中式版本控制工具中,svn以其开源和易用占领了大部分市场。而分布式的版本控制工具,则是GIT以其创始人的绝对知名度完胜Mercurial。大多数公司都面临着是否要从SVN更换到GIT的考虑,下面就针对这两种主流的版本控制工具,对比一下SVN和GIT功能的不同点。

1.SVN是集中式,GIT是分布式,因此GIT相对硬件故障的安全性更强

SVN是集中化的版本控制系统,有个不太精确的比喻:SVN=版本控制+备份服务器。

SVN使用起来有点像是档案仓库的感觉,支持并行读写文件,支持代码的版本化管理,功能包括取出、导入、更新、分支、改名、还原、合并等。

GIT跟SVN一样有自己的集中式版本库或服务器。GIT更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chectout代码后会在自己的机器上克隆一个自己的版本库。

这种分布式的操作模式对于开源软件社区的开发来说是个巨大的改善,你不必再像以前那样做出补丁包,通过email方式发送出去,你只需要创建一个分支,向项目团队发送一个推请求。这能让你的代码保持最新,而且不会在传输过程中丢失。

正是因为GIT是分布式的模式,所以GIT版本库相对硬件故障的安全性更强。每个用户都相当于一个备份,所以不用担心数据备份。通过SHA1哈希保证数据的完整性,任何恶意篡改历史数据都会被及时发现。

SVN是集中式版本控制工具,所以存在单点故障的风险。客户端很难发现版本库服务器端的历史数据被篡改,或者硬盘故障导致历史数据被篡改的情况。

2.GIT把内容按元数据方式存储,而SVN是按文件,所以GIT的存取速度比SVN更快

传统的版本控制工具都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。如果把.GIT目录的体积大小跟.svn比较,就会发现它们差距很大。因为,.GIT目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。

正是由于这种存储方式,GIT的存取速度比SVN更快。clone,checkout,diff,log等常用操作GIT都比SVN要快很多。以克隆一个拥有将近一万个提交(







































白癜风最好治疗偏方
白癜风特征



转载请注明:http://www.nylrzx365.com/gzgj/917.html