开源中文网

您的位置: 首页 > Linux应用 > Subversion > 正文

subversion是什么

来源:  作者:

subversion是什么.
subversion:新一代的开源版本控制工具,CVS的下一代
具有以下特性:

# 具有CVS大多数的当前特性
Subversion意味着更好的CVS,所以它具有大多数CVS的特性。大致说来,Subversion的接口在某些特性上与CVS很类似,若没有特殊原因让你选择其他的解决方式,就采用Subverioin。

# 目录、重命名以及文件元数据都被标示了版本
不具有这些特性是大多数CVS用户所抱怨的。Subversion的版本不仅仅是文件内容以及文件是否存在,还包括目录、副本和重命名。同时它还允许任意的元数据(属性)与任何文件或目录一起标示版本,并且提供了一种用于在文件上标示‘执行’权限标志的版本机制。

# 提交具有真正的原子性
在整个提交没有成功之前任何提交的部分都不会生效。修订(Revision)数量是根据每次提交而定的,并不是每个文件;日志信息附加到了修订内容中,不会像CVS那样冗余。

# 可以选择Apache服务器,使用WebDAV/DeltaV协议
Subversion 可以使用基于HTTP协议的WebDAV/DeltaV协议作为网络通讯协议,并且Apache Web服务器提供了仓库端的网络服务。这就使得Subversion在互操作上比CVS有优势,并且提供了很多免费的关键特性:认证、基于路径的认证、压缩、基本的仓库浏览。

# 可以选择独立运行
Subversion同时也提供了一个以独立服务器运行的选项,它使用自定义的协议(并不是每个人都希望运行在Apache 2.x之上)。独立的服务器可以运行为inetd服务,或者deamon模式,并且提供基本的认证和授权。它可以经由ssh访问。

# 分支(Branching)和标签(Tagging)的开销更小(具有固定的时间)
没有任何理由让这些操作更费时,所以它们必须如此。
分支和标签都使用底层的“复制”操作来实现。复制操作使用很小的,固定大小的空间。任何复制都是一个标签;如果你开始提交一个副本,那么它也就会成为一个分支。

# 天然的C/S结构、分层的库设计
Subversion从一开始就被设计成C/S结构的;这样就避免了一些折磨着CVS的维护问题。代码被组织成具有明确的接口的模块,设计成被其他程序调用。
# C/S 协议在两个方向上发送diff
网络协议在两个方向传输diff时能够高效的使用带宽。(CVS发送diff从服务器到客户端,而不是从客户端到服务器)

# 开销与更改的大小有关而不是数据大小
一般而言,Subversion操作所需的时间和操作所导致的结果的大小是成比例的,并不是项目更改发生时的绝对文件大小。这是Subversion仓库模型的一个特性。

# 可选择数据库或者普通文件作为仓库实现
仓库可以使用一个内嵌的数据库支持(BerkeleyDB)或者使用普通的平面文件,两者都使用自定义的格式。

# 给符号连接标示版本
Unix用户可以将符号连接加入版本控制。这些连接可以在Unix中被再次创建,在Win32中则不可以。

# 处理二进制文件更高效
Subversion在处理二进制上和处理文本文件一样高效,因为它使用二进制比较算法传输和存储成功的修订版本。

# 可解析的输出
所有Subversion命令行客户端的输出都是仔细设计成方便人们阅读并且自动解析;脚本具有更高的优先级。

# 本地化消息
Subversion使用gettext()来显示翻译过的错误、报告和帮助信息,基于当前的区域设置。

Tags:subversion是什么
相关文章列表:
关于开源中文网 - 联系我们 - 广告服务 - 网站地图 - 版权声明