subversion(简称svn)是近年来崛起的版本管理软件系统,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。
Subversion是一个版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上免费的版本控制服务多基于Subversion。
Subversion的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作。从某种程度上来说,允许用户在各自的空间里修改和管理同一组数据可以促进团队协作。
因为修改不再是单线进行(单线进行也就是必须一个一个进行),开发进度会进展迅速。此外,由于所有的工作都已版本化,也就不必担心由于错误的更改而影响软件质量-如果出现不正确的更改,只要撤销那一次更改操作即可。
某些版本控制系统本身也是软件配置管理系统(SCM),这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性-比如,对编程语言的支持,或者提供程序构建工具。
不过Subversion并不是这样的系统。它是一个通用系统,可以管理任何类型的文件集。
Subversion是一个自由,开源的版本控制系统。在Subversion管理下,文件和目录可以超越时空。Subversion将文件存放在中心版本库里。
这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。这样就可以籍此将数据恢复到以前的版本,并可以查看数据的更改细节。
正因为如此,许多人将版本控制系统当作一种神奇的"时间机器"。
2009年,绝大多数CVS服务已经改用SVN。CVS已经停止维护。
Subversion的客户端有两类:
一类是websvn等基于web的,一种是以TortoiseSVN为代表的客户端软件。
前者需要web服务器的支持,后者需要用户在本地安装客户端,两种都有免费开源软件供使用。