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

简介: 一、CVS与SVN性能的比较      今天看到这个测试结果,效果惊人阿,尤其是在分支合并处理上。Action                                        CVS               SVN Check out small file set       1 MB 17.

一、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 成为开源社区目前的最佳选择。
 

目录
相关文章
|
7月前
|
Java Maven Android开发
SVN集中式版本控制工具
SVN集中式版本控制工具
45 0
|
4天前
|
程序员 Linux 开发工具
振南技术干货集:研发版本乱到“妈不认”? Git!(5)
振南技术干货集:研发版本乱到“妈不认”? Git!(5)
|
4天前
|
存储 安全 Linux
振南技术干货集:研发版本乱到“妈不认”? Git!(4)
振南技术干货集:研发版本乱到“妈不认”? Git!(4)
振南技术干货集:研发版本乱到“妈不认”? Git!(4)
|
4天前
|
Linux 程序员 开发工具
振南技术干货集:研发版本乱到“妈不认”? Git!(1)
振南技术干货集:研发版本乱到“妈不认”? Git!(1)
|
4天前
|
Shell Linux 开发工具
振南技术干货集:研发版本乱到“妈不认”? Git!(2)
振南技术干货集:研发版本乱到“妈不认”? Git!(2)
|
4天前
|
Linux 网络安全 开发工具
振南技术干货集:研发版本乱到“妈不认”? Git!(3)
振南技术干货集:研发版本乱到“妈不认”? Git!(3)
|
3月前
|
关系型数据库 MySQL 开发工具
Git:分布式版本控制系统的崛起与演变
Git:分布式版本控制系统的崛起与演变
51 0
|
4月前
|
存储 Linux 开发工具
深入了解Git LFS:高效管理大型文件的利器
Git LFS是Git的一个扩展,旨在更有效地处理大型文件。它通过将大文件存储在单独的位置,而在Git仓库中只保留引用和元数据,来减小仓库的体积。这使得Git仓库能够更快速地克隆、推送和拉取,同时有效地处理大型媒体文件、二进制文件等。
178 1
深入了解Git LFS:高效管理大型文件的利器
|
9月前
|
Shell 项目管理 开发工具
嵌入式项目使用git进行项目管理
嵌入式项目使用git进行项目管理
79 0