有一个开源版的控制系统,或者说是修订版的控制系统,名为Subversion (简称为svn),正在快速受到开发者的喜爱。它口碑极佳,可在线下载,完全免费,有大量文字称赞它的高效和实用。它稳定,灵活,能干,安全,免费,开源,并且能够用于任何规模的项目。
以前的控制系统明星软件是CVS, 全称为并行版本系统(Concurrent Versioning System)。 Subversion出现之初只是为了给尊敬的CVS打造一个坚实可敬的基础,并根据多年以来CVS用户总结的经验来加以改进。它在很多方面如此成功,它的普及就是证据。
Subversion 几近通明的使用方法,跨多操作系统平台上大量可用的客户应用,以及Subversion的低成本,和易于管理等因素,使得它不再仅仅被用来管理源代码。对于内容可以被描述为“项目”或者“项目集”的目录结构来说,Subversion提供了一个近乎实时的备份系统。越来越多的BSD, Linux, 和 OpenSolaris用户在传统用途之外,还用Subversion的版本控制功能来保存文件目录。
安装
当Windows提供了一步安装方式时,Subversion在开源社区的迅速走红绝对与它在BSD和Linux软件档案中的易于使用不无关系。例如,在 Debian GNU/Linux中103f安装Subversion,只需用到管理界面和命令语句和命令行客户端就能完成,只要以根用户身份登录,输入apt就可完成 subversion的安装。
类似情况下,在标准的Fedora Core Linux的YUM软件包管理器中安装Subversion,也只需要命令yum。对于FreeBSD, 无论使用pkg还是-C /usr/ports/devel/subversion进行安装都可以,使用哪种方法取决于您想从二元软件安装还是从源代码进行安装。即使MacOS X 也提供了能够安装Subversion的软件档案。
在某些情况下,subversion的版本控制功能要比很多普通备份工具出色很多。最突出的当然是软件开发项目中的源代码控制。另外一个就是文档管理。由于用户的活动,文档和目录的内容会经常发生变化,迫使开发者采用一种方法撤消一些删改,看看过去的版本。一般是通过changelog来实现,在版本控制系统中专业的称呼为 “修订记录”。
一种自动修订记录管理机制对于非专业编程人员来说可能非常熟悉,因为最著名的wiki软件就采用这样的技术来跟踪内容的变化过程,并能够通过返回去掉不好的修改。
做为修订记录机制的一部分,Subversion这样的版本控制系统不仅仅维护复制当前版本文件的中央数据库,还要一路维护从文件进入版本控制以后直到当前所进行的修订日志。任何从事软件开发工作时间够长的人都能告诉你能够返回到已知良好状态的功能有多么重要。这正是任何版本控制软件的中心任务:也是它们得以存在的最主要原因。
Subversion还有更多的功能。例如,当两个人同时编辑同一文件时,它能解决版本冲突的问题。在真实世界里,那些实践经验丰富,经常在版本控制文件中提交工作,在提交变化前先更新本地文件的用户,很少与他人的工作发生冲突。这种少见的情况Subversion也能通过内置的冲突解决方案进行解决。它还支持将主开发线上经过修改的分支与其他开发分支的接合,对不同程度用户的不同程度的校验和升级许可,以及一些其他一些项目经理们会觉得非常有用的性能。
个人文件管理
版本控制系统的另外一个用处就是他们允许您在不同地点,使用多台计算机共同开发同一项目,而无需使用任何USB存储设备或者CD-RW介质。只要你在工作用电脑上安装了版本控制代理软件,并登录版本控制魔法发挥作用的服务器,您就可以找到项目的最新版本并开始工作。
由于同一数据的不同副本在校验副本更新到不同的客户端计算机时自动同步,因此Subversion 这样的控制系统也可用做一套收集在一起的文档的备份系统。这包括您每天的个人文档,以及源代码等;也就是说,如果您将任何小到不需要占用带宽来进行每周的备份的相关数据集合看做是“项目”,就可以利用Subversion来节省复制数据的时间。个人文档目录一般都非常符合这一特点,特别是当您所保存的文件大部分都是几兆大的音乐、视频及高清晰度图片等文件时,绝对适用。
如果你是那种了解日常备份在预防硬件及文件系统故障中的重要意义的用户,你会发现您所进行的不过是日常备份,因为操作Sebversion所要进行也就传统的备份系统配置和向CD-R中复制数据。Subversion所进行的如此简单的个人文件备份能够节省大量时间,或者至少能将你从延迟备份的负担中解放出来,你所需要的只是另外一台运行着Subversion服务器软件的计算机。
由于Subversion并不象Visual SourceSafe和ClearCase这样专属软件的图形化界面那样,指定单一用途,因此它能够很容易的被