SVN简介
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVN简介相关的知识,希望对你有一定的参考价值。
一、SVN简介
SVN是Subversion的简称,是一个开放源代码的版本控制系统,是近年来崛起的版本管理工具,
SVN是一个跨平台的开源的版本控制系统,Subversion管理着随时间而改变的数据。这些数据放置在一个中央资料
档案库(repository)中,这个档案库很像一个普通的文件服务器,不过它会记录每一次文件的变动。这样就可以
实现把档案恢复到旧的版本,或者浏览文件的变动历史。
SVN:不但可以管理程序源代码,还可以管理任何类型的文件,如:文本,图片,视频等等。
相关站点:http://subversion.tigris.org/
http://subversion.apache.org/
二、SVN访问方式:
服务端访问方式: 1.独立服务器 例如:svn://svn.etiantian.org/sadoc
2.借助apache 例如:http://svn.etiantian.org/sadoc
3.本地直接访问 例如:file://svn.etiantian.org/sadoc
SVN客户端访问方式:
Subversion可以通过多种方式访问以本地磁盘访问,或各种各样不同的网络协议,但一个版本库地址
永远都是一个URL,URL方案反映了访问方法。
访问方法
file:// 直接版本库访问(本地磁盘或者网络磁盘)
http:// 通过webDAV协议访问支持Subversion的Apache服务器
https:// 与http://(ˇ?ˇ) (ˇ?ˇ) 类似,但是用SSL加密
svn:// 通过未认证的TCP/IP自定义访问svnserver服务器
svn+ssh:// 通过认证的TCP/IP自定义访问svnserver服务器
三、SVN数据格式:
SVN存储版本数据也有2种方式:BDB(一种事物安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式
在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
CVS是个基于RCS文件的版本控制系统,每个CVS文件都不过是普通文件,加上一些额外信息。这些文件会简单的重复本地文件的树
结构,因此,不必担心有什么数据损失,如果有必要可以手动修改RCS文件。
SVN是基于关系数据库的(BerkleyDB)或一系列二进制文件的(FS_FS)。一方面这解决了许多问题(例如:并行读写共享文件)
以及添加了许多新功能(例如运行时事物特性)。然而另一方面,数据存储由此变得不透明。
四、svn架构原理图
commandline GUI
client app client apps
命令行客户端 图形界面客户端
-----------------------------------------------client interface 客户端接口
Working Copy client LIbrary
management 客户端库
library
Repository ACCESS
DAV SVN Local
http方式 svn方式 本地访问
APACHE svnserver
调用mod_dav模块
mod_dav_svn
subversion Repository
Berkeley DB FSFS
五、工作流程
工作流程
编辑 集中式管理的工作流程如下图:
集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。下面举例说明:
开始新一天的工作:
1、从服务器下载项目组最新代码。
2、进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。
3、下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。
这就是经典的svn工作流程,从流程上看,有不少缺点,但也有优点。
优缺点
所有的文档都显示SVN可以取代CVS,同时SVN的问题和缺点都被隐藏了。不幸的是,我们并不认为SVN是CVS的替代品,尽管很多缺陷都被修改了。更有甚者,它甚至让人重回CVS。CVS和SVN的比较类似于比较C++和Java。很明显CVS和SVN都远比SourceSafe强大的多,如同C++和Java比Basic强大的多。CVS代表了几乎代码控制系统的所有功能项,尽管有时他的实现并不很方便。SVN修正并添加了一些CVS并不拥的有功能。例如,创建标志和分支dubious,你在编辑文件时其他人不会有任何通知。SVN并不是CVS的替代品,只是个不同的系统,类似于CVS。它有些特有的功能,足以作为采用它的理由。这些功能使他更适合于开发环境,例如对PowerBuilder。下面你可以找到两者的相对优势、劣势。
本文出自 “山猫” 博客,请务必保留此出处http://cqtangbo.blog.51cto.com/2978612/1752281
以上是关于SVN简介的主要内容,如果未能解决你的问题,请参考以下文章