1.1SVN介绍 1.1.1什么是SVN(Subversion)? SVN是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台的开源的版本控制系统。SVN版本管理工具
1.1SVN介绍
1.1.1什么是SVN(Subversion)?
SVN是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台的开源的版本控制系统。SVN版本管理工具管理随着时间改变的各种数据。这些数据放置在一个中央资料档案库(repository)中,这个档案库很像一个普通的文件服务器或者FTP服务器,但是,与其他服务器不同的是SVN会备份并记录每个文件每一次的修改更新变动。这样我们就可以把任意一个时间点的档案恢复到想要的某一个旧的版本,当然也可以直接浏览指定文件的更新历史记录。
为什么会有SVN这样一个项目?
官方解释:为了接管CVS的用户基础,确切的说,我们写了一个新的版本控制系统,它和CVS很相似,但是它修正了以前CVS所没有解决的许多问题。
SVN是一个非常通用的软件系统,它常被用来管理程序源码,但是它可以管理任何类型的文件,如文本、视频、图片等。
SVN相关站点:
Subversion官网:
http://subversion.tigris.org/
http://subversion.apache.org/
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种:
1、独立服务器访问
访问地址如:svn://svn.etiantian.org/sadc);
2、借助apache等http服务器
访问地址如:http://svn.rtinatina.org/sado);
a.单独安装apache+svn
b.CSVN(apache+SVN)是一个单独的整合软件,带web界面管理的SVN软件
3、本地直接访问(如: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版本及其后的缺省版本库格式。