Subversion




Subversion,简称SVN,是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。

特点:开源、初始版本:2000,最新版本1.6.17、编程语言:C、操作系统:跨平台、类型:版本控制、许可协议:Apache许可证


 

svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。


 

优势:

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

不足:

  •   只能设置目录的访问权限,无法设置单个文件的访问权限。
  • 数据库为二进制格式,无法方便的利用其它软件读取数据库的内容。


 

SVN Client 比较常用的图形化软件

TortoiseSVN




在windows非常受到欢迎的一套Client软件,与档案总管整合得相当不错,可以透过档案总在档案或目录上用鼠标右键的选单完成SVN的操作。 TortoiseSVN 官方网站

Ankhsvn




将subversion的操作整合进Visual Studio的SVN Client软件。 Ankhsvn 官方网站

Subclipse




将Subversion的操作整合进Eclipse的SVN Client软件。 Subclipse 官方网站

Subversive




和Sublipse相同 Subversive 官方网站

SCPlugin




Mac OS下类似TortoiseSVN的软件 SCPlugin 官方网站

SVNx




Mac OS X下的一款Client软件 SVNx 官方网站

eSVN




Unix下类似TortoiseSVN的软件 eSVN 官方网站

kdesvn

Linux下使用KDE桌面管理下类似TortoiseSVN的软件 kdesvn 官方网站

RabbitVCS




Linux下使用Gnome桌面管理下类似TortoiseSVN的软件 RabbitVCS 官方网站


 

附录:

Subversion 最初的设计Team定下了几个简单的目标。 它必须在功能上可取代 CVS,也就是说, 所有 CVS 可做到的事, 它都要能够作到。 在修正最明显的瑕疵的同时, 还要保留相同的开发模式。 还有, Subversion 应该要和 CVS 很相像, 任何 CVS 使用者只要花费少许的力气, 就可以很快地上手。


 

 


转载于:https://blog.51cto.com/zhaoyongpan/581592