![](/images/smiles/icon_biggrin.gif)
SVN是Subversion的简写,是一种用于替代CVS的版本控制工具,应该说SVN比CVS更好用,功能也更强大。CVS自2008年10月以后就再也没有推出新的版本,而SVN则还处于蓬勃发展之中,越来越多的项目开始使用SVN。
SVN最早是由CollabNet公司于2000年创建的一个开源项目,作者是Karl Fogel,网络上有许多这段历史的介绍,我这里就不啰嗦了。2004年CollabNet发布了SVN1.0,2009年SVN被接受为Apache Incubator项目,到2010年2月17日正式成为Apache顶层开源项目。
SVN目前(2014.10)的官方网站是http://subversion.apache.org,最新版本为1.8.10。Apache提供了SVN源代码的下载,但并不发布和维护可所谓binary文件,一般由第三方提供。Apache Subversion提供了第三方支持的列表,其中就有CollabNet。个人建议还是使用CollabNet版本,毕竟人家是最早的发起者。
![](http://dl2.iteye.com/upload/attachment/0101/8604/1f4c2c83-d27b-3742-ad52-6d5ead0cac01.png)
CollabNet的下载地址是http://www.collab.net/downloads/subversion,它列出了几种版本。最全的是CollabNet Edge,它封装了Subversion、Apache Server和ViewVC,看样子有可能会在未来商业化,毕竟Apache Lience对此没有限制。另一个版本是Subversion+Apache的组合,还有一个版本就是只有单纯的Subversion Command-line。
简单说说Subversion、Apache Server和ViewVC的关系。
Subversion在架构上是典型的CS模式,需要有一个服务器端和相应的客户端工具。SVN自身提供了服务器运行的工具,即svnserve命令,运行该工具相当于启动了一个服务器。同时SVN还可以部署在Apache服务器上,所以Apache Server只是SVN运行的一种方式而已。SVN也包含有客户端工具,但这些都是命令行脚本,而VIEWVC则是提供了一个基于Web的客户端查看工具。
CollabNet的Edge产品将这三者封装在一起,省去了许多配置的过程,还是相当方便的。不好的地方就是对于管理员来说,隐藏了好多细节,控制能力下降了。个人建议先使用单纯的SVN版本,等对SVN熟悉了之后再使用Edge。
如果你选择了使用单纯的SVN工具,最好再去下载一个Apache Server,虽然SVN可以独立运行,但在大多数情况下,我们还是会使用SVN+Apache的模式。