1、版本控制管理工具SVN详解
1.1 什么是SVN(subversion)
SVN是近年来非常优秀的版本管理工具,与CSV管理工具一样,SVN是一个跨平台开元版本控制系统,但是SVN与众不同的是,SVN会备份并记录每个文件每一次的修改更新变动。这样我们可以把任意一个时间点档案恢复到想要的某一个旧版本,当然也可以直接浏览指定文件的更新历史记录
SVN的相关站点:
|
目前为止:常见的版本管理软件有:vss,CVS,SVN,git
1.1.1 SVN 与Git的区别
SVN是一个集中式数据管理中心,存在一个中央版本库,所有开发人员所使用的代码都是来源于版本库,提交代码也是这个中央版本库。
SVN版本控制系统工作流程:
a,在中央库上创建或者从主干复制一个分支
b,从中央库check out下这个分支代码
c,增加自己的代码,修改,删除代码文件
d, commit 代码。假设有人刚刚在分支提交了代码,你就会被提醒代码过期
你需要先update你的代码,然后在提交。
1.1.2优缺点:
当无法连接到中央版本库的环境下,你无法提交代码,将代码加入版本控制。
你无法查看代码的历史版本以及版本的变化过程。提交到版本控制系统的代码我们都默认通过自测可运行。如果某个模块的代码比较复杂,不能短时间内实现可测试的功能,那么需要更长时间提交自己的代码,因此需要备份存储做备份。这点分布式的版本控制系统比较好点
SVN的备份要备份所有代码数据以及所有更改的新版本记录
1.1.3 Git分布式版本控制
git中没有了中央分布式,但是为了开发小组的代码共享,我们通常还是会搭建一个远程git仓库,从某种意义上说,本地的git和远程的git仓库没有主从之分.
a.如果你本地创建一个git库,并将其add到远程git库中
b,你在本地添加或者删除文件,然后commit,当然commit操作都是提交到本地的git库中了,(也就是提交到了本地git目录的object目录中去了)
c,将本地的git库的分支push到远程git库的分支,如果这时候远程git库中,以及分别有了别人的push,那么远程git的分支不允许你push,到这个时候需要先pull,然后如果有冲突处理好冲突,commit到本地git,在push到远程git库
1.1.4 运维需要掌握的技术点:
a,安装,部署,维护,排障
b,简单应用,很多公司由开发来管理,包括建立新仓库,添加,删除账号
1.2 svn服务运行方式与访问方式
1.2.1 SVN服务端运行方式
SVN服务常见的运行访问方式有3种:
a,独立服务器访问
访问地址:SVN://svn.etiantian.org/sadoc
b,借助Apache等http服务
访问地址如: http://svn.etiantian.org/sadoc
b1,单独安装Apache+svn 不推荐,比较土
b2,csvn(apache+svn)是一个单独的整合软件,带web界面管理的SVN软件.
c,本地直接访问
访问方式file://application/svndata/sadoc 一般在SVN服务器本地使用
我们主要以第一种和第二种的CSVN web 管理方式
1.2.1.1 SVN客户端访问方式
file:// 直接本地磁盘或者网络磁盘访问版本库
http:// 通过webDAV 协议访问subversion的Apache服务器
https:// 与http://相似,但是用ssl加密访问
SVN:// 通过头tcp/ip自定义协议访问SVNsever
svn+ssh 通过认证加密tcp/ip自动以协议访问SVNserver服务器,
1.3 SVN档案库数据格式
SVN存储版本数据有2种方式:BDB(一种事务安全型表类型 berkley DB) ,FSFS(一种不需要数据库的存储系统)BDB方式在服务器中断时候,可能锁住数据,所以还是FSFS方式更安全
FSFS 一个专门用于subversion版本库的文件系统后端,可以使用网络文件 系统(NFS,SMBFS)
SVN是一个基于关系型数据库BDB或者一系列二进制文件的FSFS
1.3.1 SVN集中式版本管理系统
SVN是一种集中式文件系统版本管理系统,集中式管理的工作流程如下图集中式代码管理的核心是svn服务器,所有开发者新来的第一天必须从服务器获取代码,然后开发,最后解决冲突,提交,所有信息都放在svn服务器上。
1.3.2 开发者利用svn版本管理系统工作过程
举例说明:
a,从svn服务器下载项目最新代码。
b,进入自己的 分支,进行开发工作,每隔一段时间,提交一次,
c,下班时间,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器
1.3.2.1缺点:
a,由于每次提交都会有一个原始副本,因此svn数据库容量会暴增
b,如果不能连接到svn服务器上,基本上不可以工作
c,不适合开源系统开发,开发人数较多,但是集中式管理非常明确权限管理机制,可以分层次管理
1.3.2.2优点:
a,管理方便,逻辑清晰,明确。
b,易于管理,集中式svn服务器更容易保证数据安全性
c,代码一致性非常高
d,适合开发人数不多的项目开发
2安装配置svn服务
2.1准备操作系统并查看系统环境
|