Subversion是一个自由开源的版本控制系统。在Subversion管理下,文件和目录可以超越时空。Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节。正因为如此,许多人将版本控制系统当作一种神奇的“时间机器”。
简介
Subversion(简称SVN)是近年来崛起的版本管理软件系统,是CVS的接班人。目前,绝大多数开源软件都使用SVN作为代码版本管理软件。
Subversion是一个版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上免费的版本控制服务多基于Subversion。 [1]
Subversion的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作。从某种程度上来说,允许用户在各自的空间里修改和管理同一组数据可以促进团队协作。因为修改不再是单线进行(单线进行也就是必须一个一个进行),开发进度会进展迅速。此外,由于所有的工作都已版本化,也就不必担心由于错误的更改而影响软件质量—如果出现不正确的更改,只要撤销那一次更改操作即可。某些版本控制系统本身也是软件配置管理系统(SCM),这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性——比如对编程语言的支持或者提供程序构建工具。不过Subversion并不是这样的系统,它是一个通用系统,可以管理任何类型的文件集。
功能
- 包含绝大部分CVS的功能
CVS是最基本的版本控制系统。Subversion包含了CVS的大部分功能,并且针对有些功能还稍加改进。 - 目录的版本化
Subversion将目录名以版本号的形式体现。 - 基于版本的复制,删除和重命名
无论复制、删除还是重命名,都会被打上版本号,尽管这听上去有些奇怪。 - 自由的版本化元数据操作
Subversion允许任何元数据附加在文件或目录中。这些属性是键/值对,并且被版本化。Subversion也提供对修订版附加任何键/值属性的方法,这些属性不会被版本化,因为他们会自动将元数据附加到版本空间中,但他们可以随时被更改。 - 混合追踪
Subversion 1.5开始加入了混合追踪功能。 - 文件锁
支持文件锁定,当多个用户试图编辑同一个文件时会收到警告。 - Apache网络服务的支持,基于WebDAV/DeltaV协议
使用基于HTTP的WebDAV/DeltaV协议进行网络通信,而Apache网络服务器提供网络存储的站点服务。 - 可执行的标签
当一个文件是可执行的时候,Subversion会提示,并且当这个可执行的文件被放在版本控制中时,Subversion会防止该程序检查其他目录。 - 独立进程模式
Subversion可以运行在独立模式下 - 一个只读的存储镜像
Subversion提供一个工具,SVNsync, 用于同步主服务器上的 文件到一个子存储服务器上,并且标为只读的属性