1.SVN介绍

     SVN是一个跨平台的开源的版本控制系统,svn版本管理工具管理着随时间改变的各种数据,这些数据放置在一个中央档案库(repository)中,svn会备份并记录每个文件每一次的修改、更新、变动。这样可以把任意一个时间点的档案恢复到想要的某个旧的版本,可以查看指定文件的更新历史记录。

     SVN通常用于管理程序代码。但是它也可以管理任何类型的文件,如文本、视频、图片等。


SVN的优点:

    (1)管理方便,逻辑清晰明确,符合一般人的思维习惯

    (2)易于管理,集中式svn服务器更能保证数据的安全性

    (3)代码的一致性非常高

    (4)普及度高

SVN的缺点:

当无法连接到中央版本库的环境下,就无法提交代码,将代码加入到版本控制,也就说明基本上无法工作

        由于每一次提交都保留一个原始副本,因此SVN数据库容量可能会暴增。

由于代码集中管理,存在单点故障,所以需要对svn中央版本库的存储进行备份,而且同时还要备份所有更改的版本记录。


2.SVN的服务器运行模式与访问方式

    2.1 SVN服务端的运行方式有3种:

    (1)独立服务器访问

            访问地址如:svn://svn.xiaoyu.com/project;

    (2)借助Apache等http服务

            访问地址如:http://svn://svn.xiaoyu.com/project;

                a.单独安装Apache+svn

                b.CSVN(Apache+svn)是一个单独的整合的软件,带web界面管理的SVN软件。

    (3)本地直接访问

              访问地址如:file://application/svndata/project。

    

3.SVN客户端的访问方式

    SVN客户端可以通过多种方式访问服务器端 ,本地磁盘访问,或各种不同的网络协议访问,但一个版本库地址都是一个URL。

访问方式如下:

访问方式说明
file://直接通过本地磁盘或者网络磁盘访问版本库
http://通过WebDAV协议访问支持Subversion的Apache服务器
https://
与http://相似,但是用SSL加密访问
svn://通过TCP/IP自定义协议访问svnserve服务器

svn+ssh://

通过认证并加密的TCP/IP自定义协议访问svnserve服务器。

4.SVN档案库数据格式

    svn存储版本数据有2种方式:BDB(一种事务安全型类型)和FSFS(一种不需要数据库的存储系统)。

    BDB:

    BDB数据格式的版本库是一种经过充分测试的后台数据库实现的,不能通过在网络共享的文件系统上使用,伯克利DB是Subversion 1.2版本以前缺省的版本库格式。

    FSFS:

    FSFS是一个专用于Subversion版本库的文件系统后端,可以使用网络文件系统(例如NFS或SMBFS),是1.2版本及其后的缺省的版本库格式。

    SVN是基于关系数据库的(BerkleyDB)或一系列二进制文件的FS_FS。一方面解决了许多问题(例如:并行读写共享文件)以及添加了许多新功能(例如运行时的事务特性),另一方面,数据存储由此变得不透明,不能像ftp,Samba,nfs等能看到实体文件了。