且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

逐渐取代CVS的新一代版本控制系统Subversion

更新时间:2022-04-28 21:46:54

一、CVS与SVN性能的比较
      今天看到这个测试结果,效果惊人阿,尤其是在分支合并处理上。
Action                                        CVS               SVN
Check out small file set       1 MB 17.32 s         26.96 s
Check out large file set          7 M 16.92 s  5M  35.01 s
Tag small file set                     1M  29.30 s            0.88 s
Tag large file set                   18 M 52.45 s            0.86 s
Update small file set                      44.46 s            4.91 s
Update large file set               8 M 53.39 s          38.62 s
Create branch (small set)     1 M 27.99 s            0.80 s
Create branch (large set)      21 M 2.93 s            0.69 s

二、使用Subversion进行版本控制
用 Apache 和 Subversion 搭建安全的版本控制环境

作为新一代的开源版本控制工具,Subversion 以其目录版本化、原子提交、版本化的元数据、更加有效的分支和标签等优良特性,正逐渐受到开源软件社区的重视,并有望取代 CVS,成为开源软件开发中版本控制的首选系统。在服务器端,Subversion 最大的独特之处,在于它可以通过一个扩展模块与 Apache 的 HTTP 服务器相结合,实现很多高级的管理功能和安全特性。与 CVS 相比,Subversion 实现了更加先进和安全的用户认证功能。在 Apache 的支持下,用户可以通过 HTTP 协议访问版本库,管理员可以对用户访问 HTTP 的权限做出具体的设置,同时 Subversion 还可以获得 SSL 传输加密,用户数据加密,以及目录级的访问控制等特性。

本文将在服务器端配置工作的角度,结合作者在实际开发工作当中的配置实例,介绍 Subversion 服务器端的基本配置和管理,以及如何将 Subversion 与 Apache 结合,实现一些高级管理功能。
Subversion 简介

在开源软件的开发过程当中,由于开发方式***和开发人员分散这些特性,版本控制问题一直是关系到项目成败的重要问题。没有版本控制系统的支持,开源软件的开发过程就是混乱和不可控制的。

长期以来,CVS 作为一种普遍采用的开源版本控制工具,在很多的开源软件项目当中充当了重要的角色。在 Eclipse 当中,更是把 CVS 作为一个默认的插件,与 Ant,JUnit 等工具并列在一起,成为 Eclipse 软件开发的基本工具。近年来,随着开源社区的发展,一种功能更加强大的开源版本控制工具逐渐进入了人们的视野,那就是 Subversion,凭借着更为优秀的特性,Subversion 正在逐步取代 CVS,成为新一代的开源版本控制工具。

相比 CVS,Subversion 中的目录、文件以及改名等元数据都是被版本化的,例如文件的改名、拷贝等等操作;而且,在 Subversion 中,提交操作是不可分割的,修订版本号是基于每次提交操作而非文件;另外,Subversion 可以独立运行,有着轻量级的分支(Branching)与标签(Tagging)操作,版本库可以采用数据库(Berkeley DB)或者是使用特定格式的文件进行存储,对二进制文件进行处理更为有效;最后,Subversion 工具以及相关插件都有着很好的国际化支持,可以支持包括简体中文在内的多种语言版本,方便全球各地的开发人员。这些优秀的新特性,使得 Subversion 成为开源社区目前的***选择。