预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

--版本管理RCS,cvs,svn,git比较1,RCS(RevisionControlSystem)修订控制系统特点:.使用Lock机制防止多个开发人员对同一个文件同时进行修改,(ﻫ简单2,(12,CVS(CocurrentVersionSystem)并发版本系统建立在RCS基础上,最流行的开放源代码版本控制系统.使用单一的主代码树,而不像RCS那样依赖多个目录,(ﻫ特点:12),最大优点在于多名开发人员可以同时对一个文件进行修改.允许合并.这就"并发"开发.CVS只能对文件进行版本控制,不能对目ﻫ目录的版本控制(ﻫSVN(SubVersion)1,3录进行版本控制.CVS只能注意到,一个文件在一个位置被删除了,而在一个新位置创建了另外一个文件。由于它不会连接两个操作,因此也很容易使文件历史轨迹丢失CVS采用线性、串行的批量提交,即依次地,一个接一个ﻫSVN可以原子性提交(2地执行提交,每成功提交一个文件,该文件的一个新的版本即被记录到版本库中,提交CVS串ﻫ。时用户提供的日志信息被重复地存储到每一个被修改的文件的版本历史中行批量提交模式的弊端在于-当任何原因造成批量操作的中断时(典型原因包括:网络中断、客户端死机等),版本库往往处于一个不一致的状态:原本应该全部入库的文件只有一部分入库,很有可能版本库中的最新版本不能顺利编译,更为严重的是,随----着其他的用户执行cvsupdate操作,该不一致性将迅速在开发团队中扩散,从而严重影响团队的开发效率,并存在质量隐患。另外,假如该批量提交的中断没有被及时发现,开发团队往往要花更多的时间进行软件调试和排错。4,GitGit是用于Linux内核开发的版本控制工具。与常用的版本控制工具CVS,Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linuxkernel这样的大项目来说自然很重要。Git最为出色的是它的合并跟踪(mergetracing)能力。git更加适合分布式开发项目。而svn(当然全称是subversion)则更适合于集中式大型开发项目。也有在git之上再使用一层svn的做法。表1CVS,Git,Mercurial,Subversion比较特征CVSGitMercurialSubversionCVS:没是否原有.CVS提Mercurial:是Git:是的.提交都是原子的Subversion:提交都是原子的子提交交不是原子的的----Git:支持重命名,这是很CVS:不是.文件和实用的目的.git甚至能检测重命名不支目录是到重命名之后文件的改变.尽Mercurial:持.如果手Subversion:是的.支持重否可以管如此,基于特殊的存储结是的,重命名是动进行,可能命名移动或构,重命名不会被显示的记支持的会损坏历史重命名录,git能够推导出来(在实记录际使用中很容易做到)Mercurial:是的.重命名之后智能合并是支持的.Mercurtial文档说“如果我修:改一个文件,而你重新命名了Git:不支持.细节在Gi在移动这个文件,然后CVS:不能.tFAQ里:“Git有一个重命名Subversion:不支持.“svn或重命我们合并我们重命名都不的命令gitmv,但是这仅helpme“中提到“注意:这个名之后的变更,那么我支持,就不仅是为了便利.效果和移掉某子命令相当于拷贝和删除.“并且智能合所做的修改就必说智能了个文件,增加另外一个文件没可能有个bug并会被更新到根有任何区别”据旧文件名字而产生的新文件里(这可能就是你所期望的‘最简单的动作’,但是不是所有版本控制系统都支持)文件和Mercurtial:CVS:不能.Subversion:是的.并且拷目录拷Git:不能.拷贝不支持是的.支持拷拷贝不支持贝非常容易(O(1)).包括产生分支贝贝CVS:间接Subversion:间接的.可以使用远程存的.可以使用Git:是的.是git的内部特Mercurial:是Chia-liangKao的SVN::Mirror储仓库JohnPolstra征的插件(好像是台湾人)或Shlomi的备份写的CVSupFish的SVN-Pusher工具----是否传Subversion:是的,使用要么递变更Git:是的(Linux内核开发过Mercurti是Chia-LingKao的SVCVS:不会到父仓程经常使用这个特征)al:是的N::Mirror脚本或者Shlomi库Fish的svn-push工具CVS:很有限.“pre-cMercutial:ommithGit:请看和Git一起附带的是的.它能够Subversion:是的.基于H仓库权ookscriptscontrib/hooks/update-pa锁住仓