一、Subversion简介
Subversion是一个开源的版本控制系统,即version control system (VCS)。其用于管理文件和目录,以及对文件和目录的修改,适用于团队开发项目时对项目版本的管理,所以也被称为时间机器(time machine)。Subversion开发人员秉承了CollabNet公司的版本控制工具CVS的控制方法学,本意只是想去修复CVS中的缺陷,最后促成了Subversion的诞生,最终Subversion于2001年发布。
二、Subversion架构
下图为Subversion的架构图,我们可以从中看到Subversion的顶层设计。
其中底层的Subversion Repository存储了所有的版本化数据,而顶层则是Subversion客户端程序则用于管理版本化数据的映射到本地的部分数据。在这两层之间的Repository Access(RA)层,一部分跨过网络访问版本化数据仓库Subversion Repository,一部分则可以绕过网络直接访问Subversion Repository。
三、Subversion组件
subversion安装后会有一系列的组件,下面做个简单介绍:
svn
命令行的客户端程序。
svnversion
报告当前工作副本(working copy)状态的工具。
svnlook
查找subversion repository的工具。
svnadmin
创建、调整、修复subversion repository的工具。
mod_dav_svn
Apache HTTP Server的插件模块,使得subversion repository通过网络对其他人可见。
svnserve
单独的服务器程序,作为后台程序执行,能够通过SSH调用,这是让subversion repository让其他人可见的另外一种方式。
svndumpfilter
过滤subversion repository转储数据流的程序。(A program for filtering Subversion repository dump streams)
svnsync
通过网络将一个仓库增量镜像到另一个仓库。
svnrdump
展现repository历史转储数据流并通过网络装载。(A program for performing repository history dumps and loads over a network)