多角度分析SVN与CVS优缺点

开发 项目管理
SVN并不是CVS的替代品,他只是个不同的系统,类似于CVS。那么他它们各自有什么优缺点呢,本文就会给你一个完美的答复。

本节向大家简单描述一下SVN与CVS优缺点分析,在学习SVN的过程中你可能会遇到这样的问题,在这里和大家分享一下,希望通过本节的学习,大家对SVN与CVS优缺点有个清楚地认识。下面是具体介绍。

SVN与CVS优缺点分析
所有的文档都显示SVN可以取代CVS,同时SVN的问题和缺点都被隐藏了。不幸的是,我们并不认为SVN是CVS的替代品,尽管很多缺陷都被修改了。更有甚者,它甚至让人重回VSS。CVS和SVN的比较类似与比较C++和Java。很明显CVS和SVN都远比SourceSafe强大的多,如同C++和Java比Basic强大的多。CVS代表了几乎代码控制系统的所有功能项,尽管有时他的实现并不很方便。SVN,修正并添加了一些CVS并不拥有功能。例如,创建标志和分支dubious,你在编辑文件是其他人不会有任何通知。这有点象Java的发明者:他们认为你不需要指针他们就在Java里面取消了指针,Java里也没有操作符重载。
SVN并不是CVS的替代品。他只是个不同的系统,类似于CVS。它有些特有的功能,足以作为采用它的理由。这些功能使他更适合于开发环境,例如对PowerBuilder。下面你可以找到两者的相对优势、劣势。我们假设余下的东西两者没有什么大差别。如果你对两者都举棋不定,我们建议试试两个系统,注意观察下面几个指标。你也可以到网上看看两者之间的讨论。
注意:这份评价表并不代表最终意见,两个系统仍然在开发之中。

编号对比项
CVSVsSVN
===========================
1存储类型格式
CVS是个基于RCS文件的版本控制系统。每个CVS文件都不过是普通的文件,加上一些额外信息。这些文件会简单的重复本地文件的树结构。因此,不必担心有什么数据损失,如果必要的话你可以手工修改RCS文件。
------------------------------
SVN是基于关系数据库的(BerkleyDB)或一系列二进制文件的(FS_FS)。一方面这解决了许多问题(例如,并行读写共享文件)以及添加了许多新功能(例如运行时的事务特性。)。然而另一方面,数据存储由此变得不透明,或是说并不那么用户友好了。那就是为什么工具软件,对仓库(数据库)变得那么重要了。
===========================
2速度
SVN与CVS优缺点中速度的比较,CVS比较慢。
------------------------------
整体而言,由于架构实现的不同,SVN的确比CVS快很多。在网络上它只传输很少的信息并支持更多的离线模式的功能。但这也是有代价的。速度的代价就是巨大的存储(完全备份所有的工作文件)。
===========================
3标志&分支(!!!重要)
在我们看来,这些实现是适宜的。
------------------------------
SVN开发员自认为把采用标志和分支而抛弃了其他三件东西是件了不起的事。实际上这意味着他们把这个概念替换为在档案库内部复制文件或目录以便保存日志。这样一来,无论标志创建还是分支创建都只是仓库内部的文件复制了。在SVN的开发员看来,这是个很优雅的决策,这让生活变得如此简便。而我们看来,这丝毫没有什么值得骄傲之处。对分支而言,事情还不怎么糟糕,现在分支不过是在仓库内部的一个单独的目录而已了,不象早期还有些什么交错。对标志而言,事情就不那么妙了。你已经不能对代码加标志了,这个功能就这么没了。在某种程度上说,SVN全文件编号补足了这个缺陷,SVN里整个仓库都有版本号,但不是针对单个文件。当然,如果你认为一个符号标志比一个四位编码有效的话,我们业无话可说。
===========================
4元数据
SVN与CVS优缺点分析中元数据比较。CVS只允许存储文件。
------------------------------
SVN允许一个文件有任意都的可命名属性。功能十分完全,但不知到有什么用。
===========================
5文件类型
CVS最初是为文本文件存储而设计的。因此其他文件类型(二进制,统一码)文件的支持几乎没有,如需要的话则要有其他信息,并且客户端服务器端都要调整。
------------------------------
SVN会关心所有的文件类型,不需要你来手工操作。
===========================
6滚回
SVN与CVS优缺点比较中回滚比较。CVS允许任意的滚回,在任意一个已递交的版本上,尽管着要花些时间(所有的文件都要分别处理)。
------------------------------
SVN不允许递交后滚回。我们建议把仓库里好的状态版本加到末尾,覆盖掉损坏的版本。而损坏的版本无论如何也是会存在数据库里的。(svn的滚回操作实际上是merge操作)
===========================
7事务
SVN与CVS优缺点分析中事务比较。CVS中的“零或一”事务原则根本没有实现。如果检入几个文件的话(加到服务器上),很有可能部分文件完成了,而另几个没有。做为一个潜规则,手工纠正这些并且对余下的文件(而不是所有文件)一一重复检入。这样这些文件将在两阶段中被检入。但至今为止,因为这个功能缺少而导致的数据仓库损坏的案例还没有出现过。
------------------------------
SVN的确支持“零或一”事务原则,这是SVN的一大优势。
===========================
8可用性
CVS可以用在你需要的地方,支持完善。
------------------------------
SVN并未广泛运用,一些支持项目仍然没有实现。本节关于SVN与CVS优缺点分析介绍到这里。

【编辑推荐】

  1. 经验总结:SVN与CVS的区别大全
  2. 八大特性对比显示SVN与CVS的优缺点
  3. 专家精辟讲解SVN与CVS的区别
  4. 深入剖析 如何远程修改SVN密码
  5. 术语汇编 SVN代码库简介
责任编辑:佚名
相关推荐

2010-06-01 19:33:53

SVN与CVS优缺点

2015-04-10 17:23:04

XToolsCRM

2010-04-02 16:44:59

无线局域网故障

2012-02-01 10:38:42

网银信息安全网络技术

2010-05-19 16:15:05

SVN与CVS

2010-07-05 11:54:54

RationalJazz需求管理

2013-09-11 09:59:00

2022-01-18 16:01:26

区块链反垄断技术

2020-07-17 17:07:58

PaaS类型用例

2015-10-30 11:52:52

PHP 7HHVM

2009-07-31 16:35:15

ibmdwRational

2011-10-18 16:13:38

2011-04-21 09:55:42

云计算

2022-09-13 16:12:31

Web3.0互联网社交媒体

2015-08-18 10:00:53

2013-03-28 14:06:17

2011-05-04 14:20:18

电视墙3DTCL

2015-10-26 13:07:01

京东唐志雄京东白条

2015-11-03 15:00:09

技术周刊

2015-10-27 12:08:17

点赞
收藏

51CTO技术栈公众号