参考文档:
https://subversion.apache.org/
https://www.runoob.com/svn/svn-intro.html
http://svndoc.iusesvn.com/
SVN的 相关网站
什么是svn?
Subversion是一个“集中式”的信息共享系统。版本库是Subversion的核心部分,是数据的中央仓库。版本库以典型的文件和目录结构形式文件系统树来保存信息。任意数量的客户端连接到Subversion版本库,读取、修改这些文件。客户端通过写数据将信息分享给其他人,通过读取数据获取别人共享的信息。
svn出现主要是为了接管cvs。并且修复了许多cvs的以前的问题 :
可以参考:
https://www.runoob.com/svn/svn-intro.html
优于CVS之处
1、原子提交。一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏。
2、重命名、复制、删除文件等动作都保存在版本历史记录当中。
3、对于二进制文件,使用了节省空间的保存方法。(简单的理解,就是只保存和上一版本不同之处)
4、目录也有版本历史。整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。
5、分支的开销非常小。
6、优化过的数据库访问,使得一些操作不必访问数据库就可以做到。这样减少了很多不必要的和数据库主机之间的网络流量。
SVN 的缺点
1. 在无法连接到中央版本库的情况下。 无法提交代码。
SVN版本控制系统工作流程
(1)从中央库上创建或从主干复制一个分支
(2)从中央库检查(check out)下这个分支的代码
(3)增加自己的代码文件,修改现存的代码文件或删除代码文件
(4)commit代码。
SVN服务端的运行和访问方式
SVN 服务器创建的访问方式
1. 独立服务器访问
访问地址: svn://svn.example.com/sadoc
2. 借助于apache等http服务
安装方式:
a. 单独安装apache+svn
b. csvn (apache+svn) 一个单独整合的软件,带web界面管理的svn软件。
访问地址: http://svn.example.com/sadoc
3. 本地直接访问
访问地址 file://svn.example.com/sadoc
SVN档案库数据格式
svn存储版本数据格式有两种:一种是BDB(事务安全型表类型)伯克利DB(berkeley DB) ,主要在svn1.2之前的版本 ,一种是FSFS(不需要数据库的存储系统)主要在SVN1.2之后的版本。由于BDB在服务器钟端时有可能会锁住数据,所以多数采用FSFS格式。
svn 优缺点
优点:
1、 管理方便,逻辑明确,符合一般人思维习惯。
2、 易于管理,集中式服务器更能保证安全性。
3、 代码一致性非常高。
4、 适合开发人数不多的项目开发。
缺点:
1、 由于每次提交都会保存一个原始副本。服务器压力太大,数据库容量暴增。
2、 如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。
3、 不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。