版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VSS、CVSS、SVVN和CCleaarCaase等等配置工工具的评评估和比比较版本 修订历史史记录日期版本说明作者20077-09-061.0新建目录TOC * MERGEFORMAT1概述述 PAGEREF _Toc176868288 h 42主要要功能说说明 PAGEREF _Toc176868289 h 42.1Intternnet网网络访问问和远程程管理 PAGEREF _Toc176868290 h 552.2并行开开发支持持 PAGEREF _Toc176868291 h 62.3跨平台台开发支支持 PAGEREF _Toc176868292 h 62.4开发操操作使用用的便利
2、利性 PAGEREF _Toc176868293 h 62.5信息安安全性 PAGEREF _Toc176868294 h 773性能能详述 PAGEREF _Toc176868295 h 773.1VSSS PAGEREF _Toc176868296 h 73.2CVSS PAGEREF _Toc176868297 h 73.3SVNN PAGEREF _Toc176868298 h 83.4CleearCCasee PAGEREF _Toc176868299 h 163.4.1控制任任何文件件的版本本 PAGEREF _Toc176868300 h 173.4.2在版本本树中组组织元件件发
3、展的的过程 PAGEREF _Toc176868301 h 1173.4.3使用常常见的检检出/编辑/检入范范例 PAGEREF _Toc176868302 h 1883.4.4通过分分支功能能支持并并行开发发 PAGEREF _Toc176868303 h 193.4.5自动的的比较和和版本间间的归并并 PAGEREF _Toc176868304 h 19概述Visuual SouurceeSaffe:微微软的版版本控制制工具,仅支持持Winndowws操作作系统。虽然简简单好用用,但是是仅适用用于团队队级开发发,不能能胜任企企业级的的开发工工作。 Cleearccasee:IBBM旗下下R
4、attionnal公公司(220033年被IIBM收收购)的的一款重重量级的的软件配配置管理理(SCCM, Sofftwaare Connfigguraatioon MManaagemmen)工具。与CVVS和VVSS不不同,CCleaarcaase涵涵盖的范范围包括括版本控控制、建建立管理理、工作作空间管管理和过过程控制制。从最最初的软软件配置置计划,到配置置项的确确立,从从变更控控制到版版本控制制,Cllearrcasse贯穿穿于整个个软件生生命周期期。 CCleaarcaase支支持现有有的绝大大多数操操作系统统,但它它的安装装、配置置、使用用相对较较复杂,并且需需要进行行团队培培训。
5、CVSS:Cooncuurreent Verrsioons Sysstemm。CVVS 是是有着三三十年以以上的时时间的考考验。CCVS是是开放源源代码软软件世界界的一个个伟大杰杰作,由由于CVVS功能能强大,跨平台台,支持持并发版版本控制制,而且且免费,所以它它在全球球中小型型软件企企业中得得到了广广泛使用用。CVVS最大大的遗憾憾就是缺缺少相应应的技术术支持,许多问问题的解解决需要要自已寻寻找资料料,甚至至是研究究源代码码。CVVS是一一个典型型的服务务器/客客户端软软件,有有UNIIX版本本的CVVS 、Linnux版版本的CCVS和和WINNDOWWS版本本的CVVS。CCVS支支持远
6、程程管理,项目组组分布开开发时一一般都采采用CVVS。 SVN:Subbverrsioon。采用了了更先进进的分支支管理系系统,它它的设计计目标就就是取代代CVSS,CVVS纵然然易用,但也有有一些与与生俱来来的缺点点,比如如CVSS不支持持文件改改名,只只对文件件控制版版本而没没有针对对目录的的管理等等。之后后CVSS 的创创始人之之一在其其现任公公司的资资助下开开发了SSVN,用以针针对CVVS 的的一些弱弱点进行行改进。主要功能能说明CVS纵纵然是一一个老牌牌的工具具产品,并也对对开源事事业有贡贡献,但但CVSS的命令令行操作作着实让让一些使使用者头头疼。在在对一个个特定版版本的文文档C
7、hheckk inn的时候候,需要输入入一长串串的路径径名、文文件名。在操作作易用性性上与CCVS形形成对比比的是微微软家族族的VSSS。作作为微软软的产品品,在图图形界面面化操作作上自不不用多言言,但VVSS只只能适用用于小团团队的开开发工作作。VSSS是很很好的入入门级工工具,但但它的一一些功能能太过于于“入门门”,在在验证密密码、保保存密码码这些基基本功能能上处理理的不尽尽人意。适用于于大型软软件开发发的有“中坚级级”的CCleaarcaase,用它来来管理一一些小型型的项目目管理有有些“大大材小用用”。CCleaarcaase支支持目录录版本管管理、异异地团队队开发、视图、多服务务器等
8、强强大功能能,所以以一些大大公司把把它做为为一、二二级产品品管理用用,但同同样它的的价格也也不菲。CVSS是开源源的,免免费的,更何况况它还有有一个理理想的替替代者SVVN。SSVN的的设计专专门针对对CVSS的问题题作了改改进,命命令的设设计更为为合理,对二进进制文档档和目录录这样的的数据加加强了控控制能力力,并且且吸收了了VSSS的loock-moddifyy-uppdatte(rreleeasee)的模模式和mmodiify-merrge模模式的优优点这两两种方式式在一定定程度都都支持并并作了优优化,没没有提高高使用的的复杂度度。由于于SVNN的设计计结构很很好,所所以很容容易为它它开发
9、客客户端,还有WWEB模模式的,可以远远程管理理,支持持RSSS更改订订阅。功能名称Inteerneet网络络和远程程管理并行开发发跨平台开开发操作的便便利性信息安全全性VSS最新发布布版本VVSS88.0可可支持此此功能最新发布布版本VVSS88.0支支持此功功能仅支持WWinddowss 操作作系统安装、配配置、使使用均较较简单,很容易易上手使使用安全性不不高,基基于文件件系统共共享实现现对服务务器的访访问,需需要共享享存储目目录,这这样用户户可以对对VSSS的文件件夹执行行删除操操作。CVS支持,速速度一般般支持支持几乎乎所有的的操作系系统安装、配配置较复复杂,但但使用比比较简单单,只需
10、需对配置置管理做做简单培培训即可可安全性高高,CVVS服务务器有自自己专用用的数据据库,文文件存储储并不采采用“共共享目录录”方式式,所以以不受限限于局域域网。SVN相比CVVS,更更加适合合基于互互联网协协作开发发的团队队,速度度也更快快相比CVVS,能能够保证证所有的的修改都都入库生生效同上同上同上CleaarCaase速度最快快,且不受受网络连连接带宽宽的限制制、防火火墙以及及安全问问题的影影响。支持支持常见见的平台台安装、配配置、使使用相对对较复杂杂,需要要进行团团队培训训安全性不不高,采采用C/S模式式,需要要共享服服务器上上的存储储目录以以供客户户端访问问Inteerneet网络络
11、访问和和远程管管理VSS、CVSS和SVVN都提提供基于于Webb的界面面,用户户可以通通过浏览览器执行行配置管管理的相相关操作作,即通过这这样的方方法来实实现对异异地开发发的支持持。但是是相对于于CVSS,SVVN采用用统一的的二进制制差异算算法,所所以消耗耗更少的的网络带带宽,因因此更加加适合基基于互联联网(或或广域网网)进行行协作开开发的地地理上分分布的团团队,即即版本服服务器集集中、单单一;客客户端可可广泛分分布。其实上述述实现方方法有太太多的局局限性,例如网网络(IInteerneet)连连接带宽宽的限制制、防火火墙以及及安全问问题等。真正意意义上的的异地开开发支持持,是指指在不同同
12、的开发发地点建建立各自自的存储储库,通通过工具具提供同同步功能能自动或或手动同同步。这这样做的的好处是是与网络络无关,即便各各个开发发地点之之间没有有实时连连通的网网络,也也可以通通过E-Maiil 附附件等其其它方式式将同步步包发给给对方,实现手手动的同同步。而而CleearCCasee就能实实现这样样的功能能。值得说明明的是,在不同同开发点点建立各各自存储储库的方方式,主主要适用用于两个个或两个个以上位位于不同同地点的的开发团团队协作作开发的的情况。如果仅仅是采用用虚拟团团队合作作的方式式,开发发人员以以个体的的形式散散落在不不同地方方,则更更适合通通过Innterrnett 直接接操作远
13、远程的配配置管理理服务器器。并行开发发支持在团队协协作开发发过程中中,有两两种主要要的模式式:集体体代码权权和个体体代码权权。采用用集体代代码权模模式进行行开发时时,一段段代码可可能同时时会被多多个开发发人员同同时修改改;而采采用个体体代码权权模式进进行开发发时,每每一段代代码都始始终被一一个开发发人员独独享,别别人需要要修改时时也要通过该该开发人人员完成成。而配置管管理软件件针对这这一情况况,也采采用了不不同的策策略:CCopyy-Moodiffy-MMergge(拷拷贝、修修改、合合并) 的并行行开发模模式、CChecck uut-MModiify-Cheeck in(签出、修改、签入)的
14、独占占开发模模式。在在并行开开发模式式下,开开发人员员可以并并行开发发、更改改代码,并能够够自动检检测到代代码冲突突,并自自动合并并,或提提示开发发人员手手动解决决。VSS最最新发布布版本88.0可可支持并并行开发发模式,其它三三种工具具也都可支持持。CVS 采用线线性、串串行的批批量提交交,即依依次地,一个接接一个地地执行提提交,每每成功提提交一个个文件,该文件件的一个个新的版版本即被被记录到到版本库库中,提提交时用用户提供供的日志志信息被被重复地地存储到到每一个个被修改改的文件件的版本本历史中中。但是是当任何何原因造造成批量量操作的的中断时时(典型型原因包包括:网网络中断断、客户户端死机机
15、等),版本库库往往处处于一个个不一致致的状态态:原本本应该全全部入库库的文件件只有一一部分入入库,很很有可能能版本库库中的最最新版本本不能顺顺利编译译,更为为严重的的是,随随着其他他的用户户执行ccvs upddatee 操作作,该不不一致性性将迅速速在开发发团队中中扩散,从而严严重影响响团队的的开发效效率,并并存在质质量隐患患。另外外,假如如该批量量提交的的中断没没有被及及时发现现,开发发团队往往往要花花更多的的时间进进行软件件调试和和排错。SVN彻彻底消除除了CVVS 的的以上弊弊端。无无论批量量提交包包含多少少文件修修改,只只有当全全部文件件修改都都成功入入库,该该提交才才变得有有效,才
16、才对其他他用户可可见;否否则,无无论任何何原因造造成中断断,SVVN 都都会自动动执行“回滚”(roollbbackk)操作作。换一一个说法法,SVVN保证证所有的的修改要要么全部部入库生生效,要要么一个个也不入入库,即即对版本本库不作作任何的的修改。这就是是SVNN 的原原子性提提交(aatommic commmitt)。CleaarCaase可可以很容容易的产产生分支支,也可可以很容容易的将将不同分分支进行行合并。这样一一来,即即便某一一部分的的工作被被冻结或或加锁,开发者者仍然可可以继续续自己的的工作(如:在在软件集集成期)。在这这种情况况,开发发者可以以在分支支上工作作,Cllearr
17、Casse的自自动化操操作和图图形归并并工具可可以很容容易的重重新集成成新的工工作。跨平台开开发支持持如果企业业需要从从事多个个不同平平台下的的开发工工作,就就需要配配置管理理工具能能够对跨跨平台开开发提供供支持,否则势势必会给给开发、测试、发布等等各个环环节带来来不便,将使大大量的时时间被浪浪费于代代码的手手工上传传、下载载中。VSS仅仅支持WWinddowss 操作作系统。CVS、SVNN和CllearrCasse支持持几乎所所有的操操作系统统和平台台。但是CCVS和和SVNN的服务务器端在在Uniix, Linnux环环境下运运行会更更稳定可可靠。开发操作作使用的的便利性性VSS安安装、
18、配配置、使使用均较较简单,很容易易上手使使用。CVS和和SVNN安装、配置较较复杂,但使用用比较简简单,只只需对配配置管理理做简单单培训即即可。CleaarCaase安安装、配配置、使使用相对对较复杂杂,需要要进行团团队培训训,需投入入成本大大概四万万元。信息安全全性VSS它它是基于于文件系系统共享享实现对对服务器器的访问问,需要要共享存存储目录录,这样样用户可可以对VVSS的的文件夹夹执行删删除操作作,安全全性不高高。CVS和和SVNN服务器器有自己己专用的的数据库库,文件件存储并并不采用用“共享享目录”方式,所以不不受限于于局域网网。安全性性较高。CleaarCaase采采用C/S模式式,
19、需要要共享服服务器上上的存储储目录以以供客户户端访问问,安全全性不高高。性能详述述VSS优点:操操作简单单,容易易掌握;权限划划分可到到文件夹夹级,有有Reaad、CChecckOuut&CheeckIIn、AAdd/Rennamee/Deelette、DDesttroyy四种权权限级别别。缺点点:权限限管理基基于文件件共享形形式,只只能从文文件夹共共享的权权限设定定对整个个库文件件夹的权权限,而而且必须须要有可可写权限限;版本本管理和和分支管管理只能能靠人为为的手工工设置;版本发发行时,只能手手工挑选选对应的的版本文文件进行行发布。最新版本本VSSS8.00主要增加加了以下下功能:支持并行行
20、开发支持基于于Intternnet的的远程访访问模式式分布式团团队协作作增强CVSCVS 诞生于于 19986 年,当当时作为为一组 sheell 脚本而而出现;19889年33月,BBriaan BBerllinoor用CC语言重重新设计计并编写写了CVVS的代代码;119933年前后后,Jiim KKinggdonn最终将将CVSS设计成成基于网网络的平平台,开开发者们们能从IInteerneet任何何地方获获得程序序源代码码。截至至目前最最新版本本是20004年年12月月13日日发布的的功能介介绍代码统一一管理,保存所所有代码码文件更更改的历历史记录录。对代代码进行行集中统统一管理理,可
21、以以方便查查看新增增或删除除的文件件,能够够跟踪所所有代码码改动痕痕迹。可可以随意意恢复到到以前任任意一个个历史版版本。并并避免了了因为版版本不同同引入的的深层BBUG。完善的冲冲突解决决方案,可以方方便的解解决文件件冲突问问题,而而不需要要借助其其它的文文件比较较工具和和手工的的粘贴复复制。代码权限限的管理理,可以为为不同的的用户设设置不同同的权限限。可以以设置访访问用户户的密码码、只读读、修改改等权限限,而且且通过CCVS ROOOT目录录下的脚脚本,提提供了相相应功能能扩充的的接口,不但可可以完成成精细的的权限控控制,还还能完成成更加个个性化的的功能。支持方便便的版本本发布和和分支功功能
22、。CCVS在在服务器器端维护护代码文文档库,不同的的开发者者在本地地机器上上建立对对应代码码树,并并利用CCVS保保持本地地代码文文档同代代码文档档库的一一致。当当由于多多个开发发者对文文件的同同时修改改造成本本地与库库中的代代码文件件冲突时时,CVVS报告告并协助助解决冲冲突代码码的合并并问题。普通开开发者(非管理理员)对对CVSS的使用用流程。SVNSVN 是一个个自由/开源版版本控制制系统,它管理理文件和和目录可可以超越越时间。一组文文件存放放在中心心版本库库,这个个版本库库很像一一个普通通的文件件服务器器,只是是它可以以记录每每一次文文件和目目录的修修改,这这便使你你可以取取得数据据以
23、前的的版本,从而可可以检查查所作的的更改。从这个个方面看看,许多多人把版版本控制制系统当当作一种种“时间间机器”。 SSVN 可以通通过网络络访问它它的版本本库,从从而使用用户可以以在不同同的电脑脑上使用用。一定定程度上上可以说说,允许许用户在在各自的的地方修修改同一一份数据据是促进进协作。由于所所有的工工作都有有历史版版本, 你不必必担心由由于失去去某个通通道而影影响质量量,如果果存在不不正确的的改变,只要取取消改变变。SVVN的历历史: 早在220000 年,ColllabbNett, IInc. ( HYPERLINK / hhttpp:/wwww.coollaab.nnet/) 开开始
24、寻找找CVSS 替代代产品的的开发人人员,CColllabNNet 提供了了一个协协作软件件套件CCEE (CoollaabNeet EEnteerprrisee Edditiion),它的的一个组组件是版版本控制制系统。尽管CCEE 在初始始时使用用CVSS 作为为其版本本控制系系统,但但是CVVS 的的局限性性在一开开始就很很明显,ColllabbNett 知道道迟早要要找到一一个更好好的替代代品。遗遗憾的是是,CVVS成为为了开源源世界事事实上的的标准,因为没没有更好好的产品品,至少少是没有有可以自自由使用用的。所所以CoollaabNeet 决决定写一一个新的的版本控控制系统统,建立立
25、在CVVS 思思想之上上的,但但是修正正其错误误和不合合理的特特性。 20000 年年2 月月,他们们联系OOpenn Soourcce DDeveeloppmennt wwithh CVVS(CCoriioliis, 19999)的的作者KKarll Foogell,并且且询问他他是否希希望为这这个新项项目工作作,巧合合的是,当时KKarll 正在在与朋友友Jimm Bllanddy 讨讨论设计计一个新新的版本本控制系系统。在在19995 年年,他们们两个曾曾经开办办一个提提供CVVS支持持的公司司Cycclicc Sooftwwaree,尽管管他们最最终卖掉掉了公司司,但还还是天天天使用C
26、CVS 进行日日常工作作,在使使用CVVS 时时的挫折折最终促促使他们们认真地地去考虑虑如何管管理标记记版本的的数据,而且他他们当时时不仅仅仅提出了了“SVVN”这这个名字字,并且且做出了了SVNN 版本本库的基基础设计计。所以以当CoollaabNeet 提提出邀请请的时候候,Kaarl 马上同同意为这这个项目目工作,同时JJim 也得到到了他的的雇主,ReddHatt 软件件赞助他他到这个个项目并并提供了了一个宽宽松的时时间。CColllabNNet 雇佣了了Karrl 和和Benn Coolliins Susssmaan,详详细的设设计从三三月开始始,在BBehllenddorff 、C
27、ColllabNNet、Jasson Robbbinns 和和 Grreg Steein(当时是是一个独独立开发发者,活活跃在WWebDDAV/DelltaVV 系统统规范阶阶段)的的恰当激激励的帮帮助下,SVNN 很快快吸引了了许多活活跃的开开发者,结果是是许多有有CVSS 经验验的人们们很乐于于有机会会为这个个项目做做些事情情。 最最初的设设计小组组固定在在简单的的目标上上,他们们不想在在版本控控制方法法学中开开垦处女女地,他他们只是是希望修修正CVVS,他他们决定定SVNN 匹配配CVSS 的特特性,保保留相同同的开发发模型,但不复复制CVVS 明明显的缺缺陷。尽尽管它不不需要成成为CV
28、VS 的的继任者者,它也也应该与与CVSS 保持持足够的的相似性性,使得得CVSS 用户户可以轻轻松的做做出转换换。 经经过144 个月月的编码码,20001 年8 月311 日,SVNN 自己己能够“成为服服务”了了,开发发者停止止使用CCVS 保存SSVN 的代码码,而使使用SVVN 本本身。 当CoollaabNeet 开开始这个个项目的的时候,曾经资资助了大大量的工工作(它它为全职职的SVVN 开开发者提提供薪水水),SSVN 像许多多开源项项目一样样,被一一些激励励知识界界精英的的宽松透透明的规规则支配配着。CColllabNNet 的版权权许可证证完全符符合Deebiaan 的的自
29、由软软件方针针,也就就是说,任何人人可以自自由的下下载,修修改和重重新发布布,不需需要经过过ColllabbNett 或其其他人的的允许。SVN和和CVSS功能性性对比: 一、SVVN包含含绝大部部分CVVS功能能 SVN 作为CCVS 的重写写版和改改进版,其目标标就是作作为一个个更好的的版本控控制软件件,取代代目前流流行的CCVS。SVNN 的主主要开发发人员都都是业界界知名的的CVSS 专家家。SVN支持持绝大部部分的CCVS 功能/命令;SVNN 的命命令风格格和界面面也与CCVS 非常接接近。当当然,不不同的地地方正是是对CVVS 的的改进。 二、全局局性的版版本编号号 一个新的的版
30、本,并得到到一个自自增量的的版本号号N+11,该版版本号并并不针对对某个特特定的文文件,而而是全局局性的、针对整整个版本本库的。因此,我们可可以将SSVN 的版本本库看作作是一个个文件系系统或文文件目录录树的数数组。 从技术术的角度度来说,在SVVN 中中,“文文件fooo.cc 的第第5 版版本”这这个说法法是错误误的;正正确的说说法应该该是:”文件ffoo.c 在在版本库库被修改改了5 次,即即执行55 次ccommmit 后是什什么样子子?”。显然,在SVVN 中中,版本本库被修修改5 次后ffoo.c 的的内容,和被修修改了66 次后后fooo.c 的内容容很可能能完全一一样,因因为版
31、本本库的第第6 次次修改很很可能只只修改了了版本库库的其他他部分,而并没没有对ffoo.c 的的进行修修改。相相反,在在CVSS 中,文件ffoo.c 的的第1.1 版版本和第第1.22 版本本总是不不同的。 SVVN 的的全局性性版本编编号为SSVN 带来了了诸多的的优势:如对目目录或文文件执行行拷贝,无论涉涉及多少少文件,SVNN 不需需要对单单个文件件依次执执行拷贝贝命令,仅仅需需要建立立一个指指向相应应的全局局版本号号的一个个指针即即可。 三、目录录的版本本控制 CVS 只能对对文件进进行版本本控制,不能对对目录进进行版本本控制,因此CCVS 没有任任何关于于文件“移动”(moove)
32、 操作作的概念念。当人人为进行行文件移移动操作作时,CCVS 只能注注意到,一个文文件在一一个位置置被删除除了,而而在一个个新位置置创建了了另外一一个文件件。由于于它不会会连接两两个操作作,因此此也很容容易使文文件历史史轨迹丢丢失。设设置 CCVS 存储库库时,必必须非常常谨慎地地为每个个文件选选择准确确的位置置,因为为在设置置之后,几乎就就要一直直使用这这个位置置了。 同样由由于CVVS 不不记录目目录的版版本历史史,CVVS 不不支持对对文件的的“重命命名”(rennamee),人人为的对对文件进进行重命命名会使使得命名名前后的的文件失失去历史史联系,而记录录历史本本来是版版本管理理的主要
33、要目的。 还有有,CVVS 不不支持对对文件的的“拷贝贝”(ccopyy),人人为的拷拷贝对CCVS 而言,只能看看到新的的文件的的增加,而不能能记录拷拷贝源文文件和目目标文件件之间的的联系。 综上上所述,缺乏对对文件“移动”、“重重命名”、“拷拷贝”的的支持的的根源在在于CVVS 不不能记录录目录的的版本历历史,而而这些操操作在当当前的软软件开发发过程中中经常发发生,这这正是SSVN被被开发并并取代CCVS 的主要要原因之之一。 SVNN 将目目录作为为一类特特殊的文文件来处处理(事事实上,从文件件系统的的角度来来看,目目录确实实是一类类特殊的的文件,当目录录中的子子目录/文件被被删除、重命
34、名名、或新新的子目目录/文文件被创创建时,目录的的内容将将发生改改变)。因此,SVNN 象记记录普通通文件的的修改历历史一样样记录对对目录的的修改历历史,当当发生文文件/目目录的移移动、重重命名或或拷贝操操作时,SVNN 能够够准确记记录操作作前后的的历史联联系。同同样,象象对文件件的不同同历史版版本进行行比较一一样,SSVN支支持对目目录的不不同历史史版本的的比较,清晰展展现目录录的变化化历史。 四、原子子性提交交 从使用者者的角度度来看,CVSS 和SSVN 都支持持对多个个文件修修改的批批量提交交,但二二者在实实现方式式上存在在本质的的区别。 CVVS 采采用线性性、串行行的批量量提交,
35、即依次次地,一一个接一一个地执执行提交交,每成成功提交交一个文文件,该该文件的的一个新新的版本本即被记记录到版版本库中中,提交交时用户户提供的的日志信信息被重重复地存存储到每每一个被被修改的的文件的的版本历历史中。 CVVS 串串行批量量提交模模式的弊弊端在于于 当任何何原因造造成批量量操作的的中断时时(典型型原因包包括:网网络中断断、客户户端死机机等),版本库库往往处处于一个个不一致致的状态态:原本本应该全全部入库库的文件件只有一一部分入入库,很很有可能能版本库库中的最最新版本本不能顺顺利编译译,更为为严重的的是,随随着其他他的用户户执行ccvs upddatee 操作作,该不不一致性性将迅
36、速速在开发发团队中中扩散,从而严严重影响响团队的的开发效效率,并并存在质质量隐患患。另外外,假如如该批量量提交的的中断没没有被及及时发现现,开发发团队往往往要花花更多的的时间进进行软件件调试和和排错。 CCVS 即使在在批量提提交不发发生中断断时也会会造成不不一致:假设用用户A 启动一一个需要要较长时时间才能能完成的的批量提提交;与与此同时时,用户户B 执执行cvvs uupdaate 操作。此时,用户BB 很有有可能得得到一个个不一致致的更新新,即用用户B 通过“更新”操作,得到用用户A 的部分分修改文文件。 SVNN 彻底底消除了了CVSS 的以以上弊端端。无论论批量提提交包含含多少文文件
37、修改改,只有有当全部部文件修修改都成成功入库库,该提提交才变变得有效效,才对对其他用用户可见见;否则则,无论论任何原原因造成成中断,SVNN 都会会自动执执行“回回滚”(rolllbaack)操作。换一个个说法,SVNN 保证证所有的的修改要要么全部部入库生生效,要要么一个个也不入入库,即即对版本本库不作作任何的的修改。这就是是SVNN 的原原子性提提交(aatommic commmitt)。 由于SVVN 的的原子性性提交特特性和全全局版本本编号方方式,当当提交成成功完成成时,一一个唯一一的、新新的全局局版本编编号产生生,而提提交时用用户提供供的日志志信息与与该新的的版本编编号关联联,只进进
38、行一次次存储(区别于于CVSS 的按按文件重重复存储储)。 五、支支持变更更集概念念 由于SVVN 的的所有提提交是原原子性的的,每次次成功提提交形成成的唯一一的全局局版本号号对应此此次批量量提交的的所有文文件修改改,也就就是说,一个SSVN 版本号号其实对对应了一一个逻辑辑上的变变更集(chaangee seet),该变更更集可能能对应于于对一个个BUGG 的修修复,或或者对应应于对一一个已有有功能的的改进,或者对对应于一一个新功功能的实实现。可可以说,变更集集是一个个软件开开发活动动的逻辑辑结果,该变更更集可以以通过其其对应的的版本号号在软件件开发的的其他过过程中(如软件件合并/集成过过程
39、,软软件发布布管理,变更管管理系统统,缺陷陷追踪系系统)被被引用。因此,SVNN 将版版本管理理从单纯纯的、单单个的文文件修改改的层次次通过逻逻辑上的的抽象,上升到到更便于于理解和和交流的的开发活活动的层层次。 六、差异异化的二二进制文文件处理理 由于历史史原因,CVSS 主要要是为早早期的程程序员设设计的,CVSS 能够够有效处处理文本本文件(或ASSCIII文件,源代码码文件),可以以对文本本文件进进行差异异化的存存储、新新旧版本本的比较较,文件件合并等等;但对对于二进进制文件件,CVVS 则则明显力力不从心心。在CCVS 的版本本库中,对于二二进制文文件的历历史版本本,CVVS 唯唯一能
40、做做的就是是对不同同的版本本进行独独立的、冗余的的存储,哪怕版版本之间间其实只只存在微微小的差差异。举举例而言言,一个个10MM 的二二进制文文件(照照片、图图形文件件、机械械设计文文件、电电子设计计文件)假如每每周修改改一次,无论每每次修改改的大小小,一年年下来,仅该文文件就要要消耗5500MM 以上上的存储储空间。而且,客户端端每次获获取该文文件的新新版本都都要消耗耗10MM 的网网络流量量。 对对于目前前的开发发团队,无论是是软件开开发,WWeb 站点的的开发,手机等等电子产产品的研研发,需需要进行行版本管管理的不不仅是源源代码等等文本文文件,还还需要管管理需求求文档、设计文文档、测测试
41、文档档、用户户手册,图形图图像文件件,机械械/电子子设计文文件等诸诸多的二二进制文文件,CCVS 显然不不是一个个好的选选择。 与CVVS 不不同,SSVN 采用统统一的二二进制差差异算法法(biinarry ddifffereenciing alggoriithmm),即即对文本本文件和和二进制制文件采采用相同同的差异异比较算算法,并并以相同同的方式式在版本本库中进进行存储储:每次次提交后后版本库库中只存存储相对对于先前前版本的的差异,从而可可以节省省大量的的存储空空间。 该二进进制差异异算法不不仅应用用在版本本的存储储上,更更为重要要的是,SVNN 对二二进制文文件与文文本文件件一视同同仁
42、,当当客户端端需要获获取新的的版本时时(如执执行svvn uupdaate),在网网络上只只有版本本的差异异被传输输,从而而大大减减少对网网络带宽宽的消耗耗。更多多细节参参见“七七、双向向的差异异化压压缩网络络传输”。 七、 双双向的差差异化压缩网网络传输输 如上所述述,CVVS 对对二进制制文件不不能进行行有效的的差异化化处理。对于文文本文件件,CVVS 仅仅仅支持持单向的的差异化化传输:从CVVS 服服务器到到客户端端的传输输是差异异化的,即执行行cvss uppdatte 时时,只有有差异的的部分从从服务器器传输到到客户端端;而当当执行ccvs commmitt 时,无论代代码变化化多少
43、,CVSS 都需需要从客客户端向向服务器器完整传传输被修修改文件件的全部部内容,不能只只传输差差异。 相反,无论是是文本文文件还是是二进制制文件,SVNN 都进进行双向向的差异异化传输输,并且且差异化化内容还还要进行行压缩/解压缩缩的过程程:在服服务器端端获取差差异显而而易见,与CVVS 类类似;SSVN 在客户户端获取取差异的的秘密在在于 SVVN 在在客户端端的工作作拷贝中中隐含了了每个文文件的一一个“只只读的、干净的的”副本本(该副副本隐藏藏在隐含含目录.svnn 里,通常不不可见,该副本本还有更更多的妙妙用,参参见“十十二、更更多的本本地/离离线操作作”),通过比比较用户户在客户户端的
44、修修改和该该隐含的的副本,SVNN 获取取需要真真正传送送到服务务器的差差异,并并对差异异进行压压缩后才才进行网网络传输输。 对对CVSS 而言言,操作作的成本本(网络络带宽消消耗是最最大的操操作成本本)与被被修改的的文件的的大小成成比例,而与修修改本身身的大小小无关;对SVVN 而而言,操操作成本本只与修修改本身身的大小小成比例例,而与与被修改改的文件件的大小小无关。因此,与CVVS 相相比,SSVN 消耗更更少的网网络带宽宽(以客客户端的的存储空空间换取取更少的的带宽消消耗在目目前的计计算环境境下应该该是个相相当不错错的选择择!)。SVNN 更加加适合基基于互联联网(或或广域网网)进行行协
45、作开开发的地地理上分分布的团团队 版本本服务器器集中、单一;客户端端广泛分分布。 八、高效效、快捷捷创建分分支和基基线 CVS 和SVVN 都都支持分分支(bbrannch)和基线线(taag),通过分分支与合合并,可可以有效效支持大大项目的的并行开开发模式式;通过过基线管管理,可可以准确确标识一一组文件件的版本本,有效效进行软软件发布布管理和和必要时时的历史史回溯。 但CCVS 和SVVN 在在实现分分支和基基线的方方式上存存在很大大的不同同。CVVS 在在创建分分支的时时候,需需要对所所有进行行分支的的文件进进行依次次的操作作,因此此分支的的建立成成本(主主要是建建立分支支所需的的时间,或
46、消耗耗的计算算资源)与参与与分支的的文件数数量成比比例,项项目越大大,版本本库越大大,文件件越多,分支的的建立成成本越高高;基线线(taag)的的建立与与此类似似。 SSVN 的分支支和基线线是通过过执行“拷贝”来建立立的:回回想一下下在没有有引入版版本管理理工具的的时候我我们是如如何进行行所谓的的“分支支”和“基线”管理的的?答案案显然是是“拷贝贝” 我们们通过“拷贝”或“备备份”来来建立基基线;同同样,为为支持多多个开发发人员可可以同时时进行开开发,我我们为每每个开发发人员创创建一份份“拷贝贝”。由由此看来来,SVVN 通通过“拷拷贝”来来建立分分支和基基线显得得非常自自然,有有点“返返朴
47、归真真”的意意思。 由于SVVN 的的全局版版本号特特性,SSVN 中分支支或基线线的创建建过程,或SVVN中的的“拷贝贝”过程程,真正正的操作作是在版版本库中中创建一一个到某某一全局局版本号号的指针针(poointter),不再再需要针针对众多多的单个个文件依依次执行行操作。因此,该操作作的成本本为一个个很小的的常数,与项目目大小,版本库库大小,文件数数目的多多少无关关;并且且,分支支或基线线的建立立不需要要进行版版本的冗冗余存储储,新建建立的分分支或基基线基本本不占用用版本库库空间,分支的的后续存存储空间间的开销销也只与与修改的的大小有有关。 九、集成成Apaachee Weeb SSer
48、vver,提供更更多的特特性 SVN 通过与与Apaachee Weeb SServver 的集成成,可以以提供基基于htttp/htttps 协议的的版本库库访问机机制,从从而支持持SVNN 跨越越防火墙墙的安全全访问。除此以以外,SSVN 还可以以利用更更多的AApacche 特性,包括但但不限于于:Appachhe 丰丰富的用用户认证证机制(包括通通过LDDAP服服务器如如Winndowws AActiive Dirrecttoryy 服务务器的用用户认证证),基基于目录录路径的的精细粒粒度的访访问控制制,对传传输的网网络流量量进行压压缩/解解压缩,浏览版版本库目目录结构构等等。 十、支
49、持持WebbDAVV WebDDAV(Webb-baasedd Diistrribuutedd Auuthoorinng aand Verrsiooninng)是是一种基基于 HHTTPP 1.1 协协议的通通信协议议.它扩扩展了HHTTPP 1.1,在在GETT、POOST、HEAAD 等等几个HHTTPP 标准准方法以以外添加加了一些些新的方方法,使使应用程程序可直直接对WWeb Serrverr 直接接读写,并支持持写文件件锁定(Locckinng)及及解锁(Unllockk),还还可以支支持文件件的版本本控制。 Miicroosofft wwinddowss20000/XXP 及及IE
50、, Offficce 还还有Addobee/MiicrooMeddia 的DWW 等都都支持WWebDDAV,这又大大大增强强了Weeb 应应用的价价值,以以及效能能。对于于需要大大量发布布内容的的用户而而言,应应用WeebDAAV 可可以降低低对CMMS 系系统的依依赖,而而且能够够更自由由的进行行创作。上传、下载变变得轻松松自如。 SVVN 通通过与AApacche Webb Seerveer 的的集成,支持WWebDDAV 协议,使得业业务用户户(buusinnesss usserss)或非非技术用用户在不不安装任任何版本本管理客客户端的的情况下下轻松访访问SVVN 版版本库,不改变变业
51、务用用户已有有使用习习惯,支支持分布布的业务务用户对对文档的的评审、修改并并实现版版本控制制,真正正将软件件开发的的生命周周期从开开发/技技术团队队扩展到到项目的的全部干干系人(staakehholdder),避免免通过电电子邮件件传递文文档的混混乱与无无序、通通过Wiindoows 操作系系统共享享造成的的安全漏漏洞、病病毒攻击击、历史史版本被被覆盖或或丢失、审计困困难等诸诸多典型型问题。 十一、更更好的冲冲突标识识与处理理 CVS 和SVVN 都都支持通通过分支支与合并并进行并并行开发发,并可可以自动动检测到到合并时时的冲突突(coonfllictts),并在合合并结果果中以标标识合并并的
52、冲突突部分。 在CCVS 中,经经常会出出现由于于用户的的疏忽(如,没没有注意意到冲突突,或没没有完全全处理好好冲突)而将仍仍然带有有冲突标标识符号号的文件件直接进进行提交交(coommiit),从而在在版本库库中产生生垃圾版版本。 SVNN 有效效解决了了CVSS 的以以上问题题:SVVN 记记录并保保持文件件的冲突突状态,只有当当用户明明确执行行svnn reesollvedd 命令令后,该该冲突状状态标识识才被复复位,该该文件才才能被提提交,从从而大大大减少了了将仍然然带有冲冲突标识识符号的的文件直直接进行行提交的的可能性性。 十二、 更多的的本地/离线操操作 众所周知知,CVVS 客客
53、户端的的工作拷拷贝中包包含了一一个隐含含目录CCVS,该目录录中记录录了客户户端需要要的一些些管理信信息;与与此类似似,SVVN 的的客户端端工作拷拷贝中也也包含了了一个隐隐含目录录.svvn,该该目录中中同样记记录了客客户端需需要的一一些管理理信息,如版本本库URRL,当当前访问问版本号号等。 与CVVS 不不同的是是,SVVN 的的.svvn 目目录中还还包含了了工作拷拷贝中每每一个文文件的一一个“只只读的、干净的的”副本本。正是是由于该该副本的的存在,使得SSVN 与CVVS 相相比,可可以执行行更多的的本地/离线操操作,即即某些操操作不需需要访问问版本库库服务器器,因此此不需要要存在从
54、从客户端端到服务务器的网网络链接接,当然然也不消消耗任何何网络带带宽,这这进一步步增强了了SVNN 对广广域网的的友好支支持。 SVN 的以下下命令可可以进行行离线操操作:ssvn staatuss 显示工工作拷贝贝上的本本地修改改概况;svnn diiff 显示示工作拷拷贝上的的本地修修改细节节,比较较修改前前后的内内容;ssvn revvertt 撤销工工作拷贝贝上的本本地修改改; 十三、 对符号号链接进进行版本本管理 在Uniix 文文件系统统中,符符号链接接(syymboolicc liinkss,包括括硬链接接和软链链接)是是一种重重要的文文件系统统元素。CVSS 不能能对符号号链接
55、进进行版本本管理;SVNN 则可可以对符符号链接接进行版版本管理理。 十四、 元数据据管理 与CVSS 相比比,SVVN 增增加了元元数据(mettadaata)管理机机制。即即可以对对版本库库中的文文件或目目录附加加任意的的“属性性”(pproppertty),并记录录属性的的变化历历史,也也就是对对元数据据进行版版本管理理。一个个SVNN 属性性是一个个“属性性名称/属性值值”的二二元组,如“BBugNNumbber= 1000”就就是一个个属性,可以将将该属性性附加到到版本NN 上,以说明明版本NN 改正正了编号号为1000的BBUG。 SVVN 元元数据的的目的是是提供附附件的信信息以
56、满满足流程程或过程程自动化化的需要要,以增增强SVVN 的的管理能能力和自自动化程程度。SSVN 自身就就通过“属性”来存储储一些特特殊的信信息。一一个使用用SVNN 元数数据的例例子:可可以在一一些批处处理的脚脚本程序序或SVVN的钩钩子程序序(hoookss)中创创建、访访问、修修改“属属性”元元数据来来满足流流程自动动化的要要求。非功能性性对比:性能、可用性性、可扩扩展性: 一、层次次化的体体系架构构 尽管CVVS 是是开放源源代码的的,但同同样由于于历史的的原因,即使是是CVSS 的主主要开发发和维护护人员也也认为目目前CVVS 的的代码很很难进行行后续的的维护和和扩展,而这正正是SV
57、VN 被被重写的的主要原原因之一一。 SSVN 具备设设计良好好的三层层体系架架构 版本本库层(Repposiitorry LLayeer),版本库库访问层层(Reepossitoory Acccesss Laayerr),和和客户端端层(CClieent Layyer)。 SSVN 在层与与层之间间定义了了明确的的接口,使之具具备更好好的扩展展性。 SVN 的体系系架构如如下图所所示: 二、可选选的后台台版本库库实现 CVS 的版本本库以普普通的文文件系统统方式实实现;SSVN 的版本本库支持持两种实实现方式式:以嵌嵌入式的的数据库库BerrkelleyDDB 实实现,或或,采用用特定格格式
58、的普普通文件件系统FFSFSS 方式式实现。二者在在可扩展展性、性性能、备备份/恢恢复等方方面各有有特色,用户可可以根据据自身的的实际需需求进行行灵活的的选择。 三、更好好的性能能和可用用性 由于CVVS 主主要针对对文本文文件的版版本处理理而设计计,CVVS 在在处理大大文件时时存在性性能和可可用性问问题 CVVS 在在执行提提交时需需要向服服务器传传输整个个文件的的内容。一方面面,处理理文件的的大小受受制与客客户端可可用内存存的多少少;另一一方面,大文件件的处理理将占用用服务器器的绝大大部分资资源,可可能导致致服务器器性能严严重下降降,使得得其他用用户无法法访问和和工作,甚至出出现服务务器
59、宕机机。 SSVN 从设计计上根本本杜绝了了CVSS 的上上述问题题。SVVN 能能够处理理任意大大小的文文件,包包括比可可用内存存还大的的文件,并且无无论是在在客户端端还是在在服务器器端,SSVN 始终只只需要一一个相对对小、相相对固定定的内存存开销 SSVN 能够进进行双向向的差异异化/压压缩的网网络传输输,而且且无论差差异的大大小,SSVN 始终以以大小固固定的管管道方式式或流模模式(sstreeam)执行网网络传输输。事实实上,由由于客户户端参与与了差异异的计算算,SVVN 让让大量的的客户端端一起分分担服务务器的处处理负荷荷,从而而从整体体上提高高了SVVN 的的性能和和可用性性。
60、四、可解解析、格格式规范范的输出出 从用户的的角度来来看,命命令行方方式下的的SVNN 的风风格与CCVS 的风格格非常类类似,但但SVNN 还是是做了重重大的改改进:SSVN 命令行行方式下下的输出出经过了了“认真真、仔细细”的设设计,使使得其输输出不仅仅便于“人”的的阅读和和理解,同样便便于程序序脚本的的自动化化解析,或者说说,适合合“机器器”的阅阅读和理理解。因因此,在在SVNN 下编编写批量量的自动动化脚本本程序更更加容易易,脚本本工作更更加可靠靠。 五、更好好的本地地化、国国际化支支持SVVN 从从一开始始就充分分考虑到到本地化化( LLocaalizzatiion , LL10NN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 屋顶分布式光伏发电技术交底
- 2026年配电箱每日巡查记录表
- 文创产品线下体验店项目2025年消费升级趋势分析报告
- 企业管理制度建立顺序(3篇)
- 健身小型活动方案策划(3篇)
- 冬天自然活动方案策划(3篇)
- 劳务外包员工转正管理制度(3篇)
- 卖场闻香活动方案策划(3篇)
- 员工服务态度管理制度(3篇)
- 团建活动策划方案校园(3篇)
- 林木种质资源精准鉴定-洞察与解读
- 连锁早餐店卫生管理制度
- 2026年七年级数学春季开学第一课
- 集装箱焊接制度规范要求
- 天赋测评活动策划方案(3篇)
- 第五范式-人工智能驱动的科技创新
- 模块二 Windows 10操作系统
- 矿山地质环境影响评估
- 《机器人》中学校本教材
- 《电子商务法律法规(第三版)》课后参考答案 王庆春
- 2023年中国水产科学研究院渔业机械仪器研究所招考聘用笔试题库含答案解析
评论
0/150
提交评论