推荐给好友 上一篇 | 下一篇

Subversion特性

  • 保留大多数CVS 特性
  • 目录、重命名和文件meta-data都已经版本化
  • 提交是真实的原子操作
  • 可以通过WebDAV/DeltaV协议选择Apache作为网络服务器
  • 可以选择独立服务器模式
  • 分支和标签是代价低廉(固定不变的)的操作
  • 本地化的客户端/服务器,分层的库设计
  • 客户端/服务器双向传输区别的协议
  • 消耗和修改部分的大小成比例,而不是数据的大小
  • 可以选择数据库和纯文件的版本库实现
  • 对象链接的版本化
  • 处理二进制文件的高效性
  • 可解析的输出
  • 本地化信息
  • 保留大多数CVS 特性

    Subversion意味着比CVS更好,它拥有CVS的大多数特性,一般说来,Subversion的接口与CVS的十分相似,除了一些有竞争性的原因我们选择了其他方式。

  • 目录、重命名和文件meta-data都已经版本化

    CVS经常因为缺少这些特性而被抱怨,Subversion的版本不仅仅是关注文件的内容和存在性,它也允许附加在任意文件和目录上的metadata ("properties")可以被版本化,而且提供了一种机制可以版本化文件上的“执行”许可标志。

  • 提交是真实的原子操作

    在整体提交之前不会有部分提交起作用的情况出现,修订号对应每次提交而不是对应每个文件,log信息与修订号附在一起,并没有和CVS一样需要冗余的地方存放。

  • 可以通过 WebDAV/DeltaV协议 选择Apache作为网络服务器

    Subversion可以使用HTTP为基础的WebDAV/DeltaV协议用来网络通讯,Apache服务器提供版本库端的网络服务,这给了Subversion更好的协同性,也轻易获得许多关键特性:认证、路径为基础的授权,数据压缩和基本的版本库浏览。

  • 可以选择独立服务器模式

    Subversion也提供了独立服务器选项,这时使用自定义的协议(并不是所有的人希望运行Apache 2.x),独立服务器模式可以作为inetd的一个服务运行,或者以守护进程模式,提供了基本的认证和授权,也可以使用SSH作为通道。

  • 分支和标签是代价低廉(固定不变的)的操作

    没有原因会使得这些操作会很昂贵,所以它不是。.

    分 支和标签本质上都是通过“拷贝”操作实现的,一个拷贝操作会占用很少的固定数量的空间,任何拷贝都是一个标签,如果你对一个拷贝提交,它的分支也会一样的 操作。(This does away with CVS's "branch-point tagging", by removing the distinction that made branch-point tags necessary in the first place.)

  • 本地化的客户端/服务器,分层的库设计

    Subversion从一开始就是设计为客户端/服务器模式,从而免去了许多折磨着CVS的维护问题,代码是有一系列结构化的模块组成,有定义良好的接口,设计为被别的程序调用。

  • 客户端/服务器双向传输区别的协议

    网络协议有效的利用网络带宽,在有可能的情况下回双向传输区别(CVS的服务器向客户端传输区别,但反之不是)。

  • 消耗和修改部分的大小成比例,而不是数据的大小

    通常情况下,Subversion操作所耗费的时间与此次操作引起的变化成比例,而不是对这个项目改变的绝对值,这个是Subversion版本库模型的特性。

  • 可以选择数据库和纯文件的版本库实现

    版本库可以使用嵌入的数据库后端也可以使用定义格式的纯文件的后端

  • 对象链接的版本化

    Unix用户可以在版本控制里置入对象链接,这个链接会在Unix的工作拷贝里重建,但不会在win32工作拷贝里创建。

  • 处理二进制文件的高效性

    Subversion对于二进制文件具备同文本文件一样的高效性,这是因为它在传输和存储连续的修订版本中使用二进制的文件交换算法。

  • 可解析的输出

    Subversion所有的命令行客户端输出的内容都经过精心的设计,适合人们读取和自动解析;脚本化也具备较高的优先级。

  • 本地化信息

    SUbversion会根据本地设置使用gettext()来显示传输错误、报告和帮助信息。


  • 查看全部1条评论

    最新评论

    • 删除 Daisy (2011-10-24 16:08:09, 评分: 5 )

      5
     

    评分:0

    我来说两句