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简介的主要内容,如果未能解决你的问题,请参考以下文章

SVN简介与安装

Git 简介下载安装配置

SVN简介

版本管理工具git与svn简介

1. svn 简介

SVN简介