CVS由来与发展

2016-01-29 18:20 3 1 收藏

CVS由来与发展,CVS由来与发展

【 tulaoshi.com - Linux 】

软件的开发和维护过程,离不开版本管理。对于一份文件,我们经常需要按不同的版本进行归档,或者从资料库里找出反映文件修改历史的不同版本。这样一方面可以使各个阶段的代码和文档变得井然有序,另一方面可以在当前版本出现问题的时候,找回先前的版本。当然,人们希望的还不止这些,例如,人们希望规定谁在什么时候可以如何存取某个版本的内容,也希望差异不大的版本按增量的方式存成一个文件,以节省存储空间……毫无疑问,我们需要一种对文件版本进行控制管理的工具,以有效地控制产品的质量,提高项目开发管理水平。    CVS(Concurrent VersionsSystem)就是一个能让很多程序开发者同时进行软件开发的、强大的版本管理控制工具。CVS并不是Internet的产物,而它的出现却是历史的必然。Richard Stallman倡导的开源软件运动大大加速了这一过程。
起因    开源软件的一个重要特点就是可以从世界任何地方获得代码和改进代码,这是传统软件开发所不具备的。这意味着开源软件的开发在全球开发者的协作下成为一个不间断的过程,每个人都可能成为开发队伍的一员,并且每个人都会随时流动。一个地域上分散的志愿者组织显然不能投入很多的时间来训练其成员彼此合作,这就需要一套项目管理办法,确保新成员能较容易地适应工作;同时有一个自动的机制接收外来代码,使每个成员能及时得到最新修改的代码。当然,这不仅仅是开源社区的需要,只是开源社区的人员分散、资源不易管理,更需要一个版本管理工具。这样的一个工具首先应该支持世界范围的协作,保持发布版本的一致性;其次它能够容易地汇集各个特定版本的Bug,并在全球范围同步一致地进行修改;再者它需要使任何一个开发者能够追踪软件的变化;而在开发者为软件增加新功能的同时,不能妨碍一般用户使用一个相对稳定的版本。    CVS很好地解决了这一问题。除了开发人员可以使用CVS很容易地把代码变化存入代码库之外,它还为不同角色的人员设置了不同的访问权限。例如,不需要修改代码的人员可以以匿名只读方式访问代码库。而需要修改代码的开发人员每个人都能在自己的机器上建立一个开发树,当需要在一个特殊的代码区工作时,首先通过简单的命令,使开发树获得更新,以保持全球范围开发状态的同步一致。这样就可以避免出现这样的问题:花了半天时间修改的Bug,在提交的时候发现别人已经解决了。一旦确认代码中的Bug别人还没解决,开发者可以马上开始工作。当这些问题解决后,CVS会自动产生补丁,并将补丁发送给维护人员进行检查,最后可能将其并入主项目树中去。    发展历程    早在CVS之前,就出现过对变化前后的文件进行比较,并根据异同形成“补丁”(Patch)的工具。例如,Unix上使用的Diff和LanyWall写的Patch,这两个工具对程序代码的传播和维护起到了重要作用。但是,后来出现的许多要求Diff和Pach都显得无能为力,例如,发现修补出错而需要退回到以前未修改的状态等。这就要求有一个保存项目历史纪录的系统。    当时初步具备这个功能的工具是SCCS(Source Code Control System),是贝尔实验室的MarcRochkind在1972年写成的。SCCS是一种基本的源文件版本控制工具,适用于正文文件的版本维护。它基于单一文件的版本控制,代码库和要维护的文件通常在同一目录下。SCCS有一个专门的SCCS文件保留源文件的各编码版本,其中记录了足够的信息来恢复一个版本,并记录了谁对文件有修改权、有版本锁的功能。SCCS是AT&T Unix发行版的一部分。    然而,自由软件项目最终选择了Walter F.Tichy的版本控制系统(RCS)来满足他们的需要。RCS在SCCS基础上加以改进,界面也更加友好,是BSDUnix发行版的一部分。它可以追踪文件的改变,在工作组中对文件的共享和访问进行控制,通常用于维护源代码;也能追踪文件的修改历史。RCS包含一套命令,用于设置RCS源码库中的文件属性、检入检出文件、清除文件、比较修订版本,以及合并文件等。由RCS管理的文件可以既可以是纯文本文件,也可以是二进制文件。    然而,RCS仍存在几个重要缺陷,其中最主要的是由于使用单一目录控制与档案锁,无法让多个编程人员同时开发。因为RCS本身不是针对网络环境写的,开发者只能在RCS代码库所在的机器上工作,难以在分布式环境下开发。这些缺点后来在CVS中都得到了改进。1956年DickGrune写了一段Shell脚本来简化RCS的使用。1986年10月,它的第6个发行版被放到USENET新闻组comp.soures.unix之中。1989年3月,Brian Berlinor用C语言重新设计并编写了CVS的代码。后来,JettPolk帮助Brian完成了CVS模型设计,增加了一些关键特性。1993年前后,JimKingdon最终将CVS设计成基于网络的平台,开发者们能从Internet任何地方获得程序源代码。    特点    CVS本身是开源项目,通过其方便的功能使众多的人们加入到开源软件项目之中,促进了开源运动的发展。反过来,开源项目的成

来源:https://www.tulaoshi.com/n/20160129/1505362.html

延伸阅读
工作思路:在一台服务器上建立一个代码仓库(repository),其中存放了许多项目的源程序,由管理员管理这些源程序,每个用户在使用仓库前,把仓库里的项目文件下载到本地,先在本地修改,然后用cvs命令提交. CVS在SCCS和RCS的基础上开发CVS Concurrent Version SystemSCCS Source Code Control SystemRCS Revision Control System 工作思路:在一台服务...
标签: 生活常识
科技金融属于产业金融的范畴,主要是指科技产业与金融产业的融合。经济的发展依靠科技推动,而科技产业的发展需要金融的强力助推。由于高科技企业通常是高风险的产业,同时融资需求比较大,因此,科技产业与金融产业的融合更多的是科技企业寻求融资的过程。 科技金融创新与发展-科技金融服务平台 什么是科技金融 科技金融...
在学习中遇到问题可以到 论坛 发贴交流! 结构和表现 当讨论Web标准时,一些事情总是被提及,那就是结构和表现分离的重要性。刚开始的时候理解结构和表现的不同之处可能很困难,特别是如果你不习惯于思考文档的语义结构时。然而,理解这点是很重要的,因为,当结构和表现分离后,用CSS文档来控制表现就是很容易的一件事了。 结构是由...
《文明 太空》DLC潮起发展与宝物组合技巧 《文明 太空》有许许多多的玩法推荐,开局与后面的发展也是很重要的,今天图老师图老师小编为大家带来了《文明 太空》DLC潮起发展与宝物组合技巧,还不知道该如何开局的朋友,和不知道如何组合宝物的朋友,让我们一起来看看吧。 一: 推荐开局选择pioneering科技&艺术家&显示海岸线...
《文明5》新手攻略 战争与发展的技巧 文明5作为一款策略类游戏,在很多时候都需要玩家在开局前做好相应的策略计划,然后一步步去实现,其实这款游戏并不一定要战争才能胜利,其他非暴力胜利才是这款游戏最大的亮点。 新手攻略 尽我所能的介绍下对战电脑的一些公认技巧和我自己对文明的一些理解和体会。 既然大家都对战争部分比较感...

经验教程

649

收藏

14
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部