帮助中心

subversion入门介绍

2014-12-02 14:28:46

Subversion是什么?

Subversion(简称svn)是一个自由,开源的版本控制系统。目前,绝大多数开源软件都使用svn作为代码版本管理软件。,它可以记录每一次文件和目录的修改情况。这样就可以籍此将数据恢复到以前的版本,并可以查看数据的更改细节。正因为如此,许多人将版本控制系统当作一种神奇的“时间机器”。

Subversion的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作。允许用户在各自的空间里修改和管理同一组数据可以促进团队协作。开发进度会进展迅速。此外,由于所有的工作都已版本化,也就不必担心由于错误的更改而影响软件质量—如果出现不正确的更改,只要撤销那一次更改操作即可。

Subversion的优点

在SVN之前,CVS是使用最广泛的版本管理软件。开发者们通过服务器上的共享目录,共同开发同一个项目,达到追踪所有的工作进度,而服务器上也会保存历史版本信息,以方便开发者的排错。

SVN与CVS对比的优点如下:

  1. 统一的版本号。CVS是对每个文件顺序编排版本号,在某一时间各文件的版本号各不相同。而Subversion下,任何一次提交都会对所有文件增加到同一个新版本号,即使是提交并不涉及的文件。所以,各文件在某任意时间的版本号是相同的。版本号相同的文件构成软件的一个版本。
  2. 原子提交。一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏。
  3. 重命名、复制、删除文件等动作都保存在版本历史记录当中。
  4. 对于二进制文件,使用了节省空间的保存方法。(简单的理解,就是只保存和上一版本不同之处)
  5. 目录也有版本历史。整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。
  6. 分支的开销非常小。
  7. 优化过的数据库访问,使得一些操作不必访问数据库就可以做到。这样减少了很多不必要的和数据库主机之间的网络流量。

Subversion的缺点

  1. 只能设置目录的访问权限,无法设置单个文件的访问权限。
  2. subversion的官方版本不支持ntfs文件系统的扩展属性,ntfs的扩充属性(如:安全属性、附加数据流(可选数据流)、加密数据流等)在提交、检出、导入、导出等操作过程中会丢失。