1.1SVN介绍html
1.1.1什么是SVN(Subversion)?git
SVN是近年来崛起的很是优秀的版本管理工具,与CVS管理工具同样,SVN是一个跨平台的开源的版本控制系统。SVN版本管理工具管理随着时间改变的各类数据。这些数据放置在一个中央资料档案库(repository)中,这个档案库很像一个普通的文件服务器或者FTP服务器,可是,与其余服务器不一样的是SVN会备份并记录每一个文件每一次的修改更新变更。这样咱们就能够把任意一个时间点的档案恢复到想要的某一个旧的版本,固然也能够直接浏览指定文件的更新历史记录。web
为何会有SVN这样一个项目?数据库
官方解释:为了接管CVS的用户基础,确切的说,咱们写了一个新的版本控制系统,它和CVS很类似,可是它修正了之前CVS所没有解决的许多问题。apache
SVN是一个很是通用的软件系统,它常被用来管理程序源码,可是它能够管理任何类型的文件,如文本、视频、图片等。后端
SVN相关站点:安全
Subversion官网:服务器
http://subversion.tigris.org/网络
http://subversion.apache.org/app
SVN客户端:http://tortoisesvn.org
SVN中文网站:http://www.iusesvn.com/
中文常见问题解答:FAQ:http://subveersion.apache.org/faq.zh.html
经常使用的管理软件有:VSS、CVS、SVN、git,最经常使用的就是SVN版本管理系统。
1.1.2 SVN和GIT的区别
1.1.2.1 SVN集中式版本控制系统
SVN版本控制系统集中式的数据管理,存在一个中央版本库,全部开发人员本地开发所使用的代码都是来自于这个版本库,提交代码也都必须提交到这个中央版本库。
SVN版本控制系统工做流程:
1.在中央库上建立或从主干复制一个分支。
2.从中央库check out下这个分支的代码。
3.增长本身的代码文件,修改现存的代码或删除代码文件。
4.commit代码,假设有人在刚刚的分支上提交了代码,你就会被提示代码过时。
你得先up你的代码后提交。up代码的时候若是出现冲突,须要解决号冲突后再进行提交。
缺点:
当没法链接到中央版本库的环境下,你没法提交代码,将代码加入版本控制中。
你没法查看代码的历史版本以及版本的变化过程。提交到版本控制系统中的代码咱们都默认经过自测可运行的,若是某个模块的代码比较复杂,不能短期内实现可测试的功能,那么你须要等很长时间才能提交本身的代码,因为代码集中管理,所以,须要对中央版本库的存储作备份。这点分布式的版本控制系统要好一些。
1.1.3 掌握版本管理
对于版本管理系统,须要掌握的技术点:
1.安装、部署、维护、排障。
2.简单使用,不少公司都是由开发来管理,包括建立仓库和删除帐号。
3.对于版本控制系统,运维人员至关于开发商,开发人员是业主,运维搭建的系统为开发人员服务的。
1.2.1 SVN运行模式与访问服务
1.2.1.1 SVN服务端运行方式
SVN服务常见的运行访问方式3种:
一、独立服务器访问
访问地址如:svn://svn.etiantian.org/sadc);
二、借助apache等http服务器
访问地址如:http://svn.rtinatina.org/sado);
a.单独安装apache+svn
b.CSVN(apache+SVN)是一个单独的整合软件,带web界面管理的SVN软件
三、本地直接访问(如:file://application/svndata/sadoc)
1.2.1.2 SVN客户端访问方式
SVN客户端能够经过多种方式访问服务器,例如:本地磁盘访问,或各类各样不一样的网络协议,但一个版本库地址永远都是一个URL,URL反映了访问方法。
· 1.3.1 SVN档案库数据格式
SVN存储版本数据有2种格式:BDB(一种事物安全型表类型)和FSFS(一种不须要数据库的存储系统)。由于BDB方式在服务器中断时,有可能锁住数据,因此仍是FSFS方式更安全一点。
BDB:
伯克利DB(Berkeley DB),版本库可使用的一种通过充分测试后台数据库实现,不能在经过网络共享的文件系统上使用,伯克利DB是Subversion1.2版本之前的缺省版本库格式。
FSFS:
一个专用Subversion版本库的文件系统后端,可使用网络文件系统(例如 NFS 或 SMBFS)。是1.2版本及其后的缺省版本库格式。