前言

Subversion(也叫SVN)是最流行的版本管理软件之一,最早是在2000年由 CollabNet 公司发布,作为CVS的更好替代,迅速的流行了起来。

Subversion简介

有非常多的大型项目都在使用它做代码版本管理,包括Apache Software Foundation,Free Pascal, FreeBSD, GCC, Mono, SourceForge。
因为有文件级的权限控制,成为企业代码安全管理的唯一选择。

如果一个开发团队不使用版本管理软件,管理代码将会是个灾难。
试想,任何人任何时间都能随意修改代码,而且没有记录,那我们如何找回昨天写的代码,如何查询某行代码是谁写的,发生bug如何找到代码编写人?

SVN 可以管理和记录你代码的所有改动,不管你有多少文件,改动多少次,有多少人参与改动,都能一一记录,并且随时能找回之前的代码,还能确保你的代码不被删除,保证公司代码的安全。

SVN的数据存储在服务器上,我们叫它为仓库(Repostory),这里记录了你所有文件的改动,包括完整的修改历史记录。
开发人员在他们的电脑上使用SVN的客户端跟服务端进行交互,可以随时查看到文件列表,修改记录,同步其他人的修改。
每次提交变动到服务器都会记录为一个版本号,我们可以通过历史看到这次提交的内容,变动了哪些文件,哪些行。

你可以通过分支功能来管理你软件的不同版本,通常我们把trunk目录称作主干分支,其他分支我们存储到branches目录,可以用来保存v1.0、v2.0这样的不同软件版本。

为什么使用 Subversion?

SVN 跟 Git 比起来有很多优势。

SVN 的文件是存储到一个统一的中心化服务器,而 Git 则是在每个人的电脑上都复制了一份完整的仓库,这让SVN更有利于项目的扩展。
假设一个项目达到上百G后,Git需要每个开发人员的电脑都要复制这上百G的数据,显然非常的不合理,而 SVN 则可以根据需要,只检出自己需要的目录,不用浪费自己电脑的磁盘空间和传输带宽。

SVN 对新手非常友好,上手容易,没有基础的用户也能快速学会并在工作中使用起来,而Git往往需要花费非常多的时间来学习它复杂的概念、命令、操作。

SVN 有文件级的权限控制,可以设置什么人有什么文件的权限,这对企业代码安全来说是非常重要的,而 Git 因为是每个人电脑上都有完整的复制,根本没法做权限控制。

另外 SVN 对二进制文件更加友好,占用的空间更好,因为它有独特的二进制diff算法,而Git对待二进制文件则很不友好,占用空间会非常大。

查看更多SVN 和 Git的差异对比