`
zpball
  • 浏览: 919545 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Subversion和CVS 比较

阅读更多
Subversion和CVS相比,除了包含了CVS的全部特性之外,也加入了新的理念:
   
    1、路径、改名、以及文件meta-data也可进入版本控制范围。
                缺少这些特性是CVS被抱怨最多的方面之一,subversion不止对文件内容和文件存放位置加入
                控制,也对目录,拷贝,重命名操作加入版本控制。它也允许文件/目录的相关元数据
                meta-data和文件/目录本身一起被版本控制起来,并提供一种机制对文件的执行权限进行
                控制。
     2、Commit动作真正成为原子级的操作了。
                直到整个commit动作都成功前不会有任何部分的commit会生效。版本修订号只是预确认,而
                不是对文件预确认。(翻译不出来 -_-;)日志信息将绑定到修订信息,而不是象CVS那样冗余
                的存储下来。
     3、提供Apache网络服务器选项,支持WebDAV/DeltaV协议。
                Subversion可以使用基于http协议的WebDAV/DeltaV协议进行网络通讯,并由Apache服务器
                提供源码仓库方的网络浏览服务。这为Subversion提供了比CVS更好的协同工作能力,并提供了
                各式各样的自由的关键特性:授权,基于路径的授权,线性压缩,以及基本源码仓库浏览。
      4、独立服务器选项
                Subversion也能提供独立服务器选项,使用自定的协议(不是每个人都想运行Apache2.x)
                独立服务器可以作为系统的inetd服务运行,并提供基本的授权。它也能使用ssh进行加密。
      5、建立分支和标签操作成为不耗时的操作。
                这些动作没理由耗时,所以我们不再让它们耗时。
      6、分支与标签的实现都是基于底层的拷贝操作,一个拷贝占用一块固定大小的空间。任何拷贝都
                可以作为一份标签;假如你开始对某个版本的拷贝进行commit动作,那它也就成为一个分支。(这与CVS的"分支节点做标签"方式不同)
      7、天然的client/server结构,层次化库设计。
                Subversion从设计之初即采用client/server机构;因此避免了困扰CVS了许久的一些维护性难题。
                代码被构建为一组带有详细接口说明的模块,用以方便的由其他应用程序进行调用。
      8、Client/server协议向双方发送对比差异。
                网络协议利用宽带有效地发送对比差异给客户端和服务器端双方。( CVS只是 server->client,
                没有client->server )
      9、资源消耗与数据改变的大小成正比,而不是与数据本身大小成正比
                一般来说,一项Subversion操作所需时间与操作最终变化的大小成正比。而不是与操作所触
                及的整个项目的大小成正比,这是Subversion源代码仓库模型的一个特性。
      10、有效的处理二进制文件
                Subversion对于二进制文件和文本文件的处理同样有效,因为subversion使用一种二进制
                差异比较算法来增量存储那些连续的修订本。
      11、易于语法分析的输出。
                所有Subversion命令行客户端的输出都是仔细设计的,可轻松为人所理解,也适于程序自动
                解析。可进行脚本语言处理将是下一步优先考虑的特性。
分享到:
评论

相关推荐

    Subversion与CVS的比较

    ### Subversion与CVS的深度比较 #### 一、Subversion概述 Subversion,简称SVN,是一款开源的版本控制系统,旨在提供一个超越时间限制的文件和目录管理方案。如同一款“时间机器”,Subversion的核心功能在于记录...

    SubVersion and CVS 安装配置手册.rar

    《SubVersion和CVS安装配置手册》是一份深入解析SubVersion(SVN)与Concurrent Versions System(CVS)的综合性教程,旨在帮助用户全面掌握这两种版本控制系统的基础知识、安装步骤、配置技巧以及如何与Apache...

    cvs及Subversion相关资料

    这两份资料可能是CVS和SVN的详细教程,涵盖了基本概念、命令行用法、最佳实践以及可能遇到的问题和解决方案。 了解和掌握CVS和SVN对于软件开发团队至关重要,它们不仅提高了开发效率,也保证了代码的质量。通过...

    cvs2svn-2.4.0.tar.gz

    cvs2svn is a program that can be used to migrate a CVS repository to Subversion (otherwise known as "SVN") or git. Documentation: The list of cvs2svn features explains briefly why converting a ...

    CVS和SVN配置学习

    下面将详细介绍CVS和SVN的配置学习要点。 1. CVS简介: CVS是一种早期的版本控制系统,它基于客户端-服务器架构,允许开发者在不同的计算机上工作并同步更改。CVS的核心特性包括版本追踪、分支与合并、冲突解决...

    版本控制软件Subversion使用

    Subversion(简称SVN)是一款开源的集中式版本控制系统,它由Karl Fogel等人于2002年创建,旨在作为CVS的替代品,解决CVS存在的一些问题,如安全性、目录操作控制、二进制文件处理和效率等。SVN通过其独特的特性,如...

    深入浅出SVN(SubVersion,版本控制系统) (pdf高清晰版)

    - **移动和删除追踪**:Subversion引入了移动和删除文件的历史追踪功能,解决了CVS无法有效处理文件移动的问题。 - **Unicode支持**:全面支持Unicode字符集,解决了CVS处理非ASCII文件时的问题。 - **灵活的数据...

    Subversion以及TortoiseSVN安装包

    通过Windows资源管理器,用户可以直接进行版本控制操作,如查看文件的历史版本、比较不同版本的差异、创建分支和标签,以及解决合并冲突等。TortoiseSVN的界面友好,大大降低了版本控制的学习曲线,使得开发者无需...

    版本管理三国志 (CVS, Subversion, git)1

    在众多的VCS中,CVS( Concurrent Versions System)、Subversion(SVN)和git是最具影响力的三个。这三者在不同的时期各领风骚,共同塑造了现代软件开发的基石。 CVS是最早的分布式版本控制系统之一,自1986年开始...

    使用Subversion进行版本控制(针对 Subversion 1.4)

    属性和 Subversion 工作流程 自动设置属性 文件移植性 文件内容类型 文件的可执行性 行结束字符串 忽略未版本控制的条目 关键字替换 锁定 创建锁定 发现锁定 解除和偷窃锁定 锁定交流 外部定义 Peg和实施修订版本 ...

    CVS使用手册(cvs使用详解)

    - **SVN(Subversion)**:与CVS类似,但提供了更好的性能和安全性,目前更受欢迎。 - **Git**:现代分布式版本控制系统,拥有强大的分支管理和离线工作能力。 通过深入理解并熟练使用CVS,开发团队可以更高效地...

    Apache-Subversion-1.9.5

    Apache Subversion(简称SVN)是一个开源的、跨平台的版本控制系统,它在2000年代初诞生,旨在改进RCS(Revision Control System)和CVS(Concurrent Versions System)等早期版本控制工具的不足之处。Subversion ...

    将cvs转换为svn库的工具cvs2svn

    3. **配置**:在开始转换之前,你需要创建一个配置文件,其中包含CVS和SVN仓库的信息,以及转换规则。配置文件通常用Python编写,允许高度自定义。 **三、使用cvs2svn进行转换** 1. **准备CVS仓库**:确保你有CVS...

    MyEclipse使用CVS

    MyEclipse集成了一些冲突解决工具,如P4Merge或Beyond Compare,可以帮助你更直观地比较和合并代码差异。 7. **CVS日志** 可以查看项目的历史版本信息,包括提交人、日期、提交注释等,通过`Team` -> `Show ...

    Linux 上安装 Subversion

    它通过网络访问版本库,允许开发团队协同工作,支持文件和目录的原子提交、差异比较、合并分支等功能。 #### 二、安装Subversion前的准备 在Linux环境下安装Subversion,需要准备以下组件: 1. **Subversion**:...

    Subversion简介

    Subversion 的设计目标是克服传统版本控制系统如CVS的局限性,提供更高效、灵活和安全的版本控制功能。 Subversion 的核心特性包括: 1. **版本化的目录**:与CVS不同,Subversion 支持对整个目录树进行版本控制,...

    svn与cvs对比

    Subversion(简称SVN)和Concurrent Versions System(简称CVS)是两种广泛使用的集中式版本控制系统。本文将深入探讨SVN与CVS之间的差异,以及这些差异如何影响开发流程和团队协作。 #### 版本控制范围 - **CVS**...

    Subversion

    Subversion是一种开放源代码的版本控制系统,它通过跟踪文件和目录的变更来管理项目的历史版本。与传统的版本控制系统相比,Subversion在设计时就考虑到了现代软件工程的需求,提供了更为强大的功能集。 ##### 1.2 ...

    TortoiseCVS和TortoiseSVN使用手册

    TortoiseCVS和TortoiseSVN是两款非常流行的开源版本控制系统客户端,尤其在Windows平台上广受欢迎。本手册将详细介绍这两款工具的安装、配置以及日常使用的各项功能。 一、TortoiseCVS入门 1. **安装与配置**:...

    subversion

    相比于早期的 CVS 系统,SVN 提供了更强大的功能和更好的用户体验。 #### 二、在 Eclipse 中集成 Subversion Eclipse 是一款非常流行的集成开发环境(IDE),支持多种编程语言。为了在 Eclipse 中使用 Subversion...

Global site tag (gtag.js) - Google Analytics