SVN使用—工作模式及运行原理以及优缺点对比-程序员宅基地

技术标签: git  网络  数据库  

一、SVN原理

(1)运行方式
svn服务器有2种运行方式:独立服务器和借助apache运行。
1.独立服务器访问
访问地址如:svn://svn.test.com/test

2.借助Apache等http服务
访问地址如:http://svn.test.com/test
a.单独安装Apache+svn
b.CSVN(Apache+SVN)是一个单独的整合的软件,带web界面管理的SVN软件

3.本地直接访问
访问地址如:file:///application/svndata/test

SVN客户端访问方式
svn客户端可以通过多种方式访问服务器端,例如:本地磁盘访问,或各种各样的网络协议访问,但是一个版本库地址永远都是只有一个URL,URL反映了访问方法

file:///    直接通过本地磁盘或者网络磁盘访问版本库
http:// 通过WebDAV协议访问支持Subversion的Apache服务器
https://    与http://相似,但是用SSL加密访问
svn://  通过TCP/IP自定义协议访问是SVN服务器
svn+ssh://  通过认证并加密的TCP/IP自定义协议访问svn服务器

(2)数据存储
svn存储版本数据也有2种方式:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。

BDB:
伯克利DB(Berkeley DB),版本库可以使用的一种经过充分测试的后台数据库实现,不能再通过网络共享的文件系统上使用,伯克利DB是Subversion1.2版本以前的缺省版本库格式

FSFS:
一个专用于Subversion版本库的文件系统后端,可以使用网络文件系统(例如:NFS或SMBFS)。是1.2版本及以后的缺省版本库格式。

svn是基于关系型数据库的BDB或一系列二进制文件的FSFS。这解决了许多问题(如:并行读写共享文件)以及添加了许多新功能(如:运行时的事物特性)。然而另一方面,数据存储由此变得不透明,不能像ftp,samba,nfs等能看到实体的文件。

(3)工作原理
SVN是一个增量式的版本控制,它不会讲各个版本的副本都完整的保存下来,而只会记录下版本之间的差异,然后按照顺序更新或者恢复特定版本的数据。这使得服务端的存储量会非常低。
1219690-20180226105406424-1080461361.jpg

1219690-20180226105840089-709011620.jpg

1219690-20180226105900403-845847440.png

集中式代码管理的核心是SVN服务器,开发者在开始新一天工作之前必须现在本地update一下代码,然后开发、解决冲突、合并。所有的版本信息都放在SVN上面。

二、SVN与GIT的区别
(1)SVN是集中式版本控制系统

SVN版本控制系统是集中式的数据管理,存在一个中央版本库,所有开发人员本地开发所使用的代码都是来自于这个版本库,提交代码也必须提交到这个中央版本库。

优点:

  • 对于某些项目的核心代码或者是一些重要的保密性要求较高的项目,svn比git更适合。
  • svn支持空目录
  • svn有更好的windows平台支持
  • svn可以check out/clone一个子树(sub-tree)
  • svn支持特权访问控制svn lock,在处理很难合并的文件时非常有用
  • svn支持二进制文件,更容易处理大文件(不需要把老版本拷来拷去)
  • 学习简单、使用简单

缺点:

  • 无网的情况下:无法提交代码,无法查看代码的历史版本、无法同步代码
  • 代码要定期做备份(所有的代码数据及版本变更记录)
  • 分支切换缓慢
  • 由于每次提交都会保留一个原始副本,因此SVN的数据库容量会暴增。尤其是在开发人员非常多的情况下。
(2)GIT是分布式版本控制系统

git没有中央版本库,但是为了方便开发小组的成员们进行代码共享,通常会搭建一个远程的git仓库。和svn不同的是开发者本地也包含一个完整的git仓库,从某种程度上来说本地的仓库和远程的仓库在身份上是等价的,没有主从。

优点:

  • 比svn方便和快捷的切换分支
  • 书写的代码可以随时提交
  • 丰富的命令行操作和组合
  • 可以一人一个仓库,仓库可以有多个分支

缺点:

  • 没有一个较好的桌面集成工具
  • 不支持二进制文件
  • 学习成本高

转载于:https://www.cnblogs.com/tongxiaoda/p/8472045.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30268071/article/details/98202749

智能推荐

联想计算机管理员权限设置,Windows XP系统如何新建administrator管理员权限账户-程序员宅基地

文章浏览阅读1.6k次。知识点分析:对于Windows XP系统,有很多种创建用户账户的操作方法。其中包括:使用CMD命令行的net命令进行,也可以使用控制面板的图形界面进行,还可以使用计算机管理控制台中的“本地用户和组”进行。其中后者自定义功能多,本文以此为例进行操作示范。操作步骤:1. 在系统桌面找到并使用鼠标右键点击“我的电脑”图标,然后在弹出菜单中选择“管理(G)”,如下图所示:2. 在弹出的计算机管理窗口,展开..._xp 开启管理员账户

socket 及 websocket的握手过程_websocket三次握手详解-程序员宅基地

文章浏览阅读6k次。一、WebSocket和HTTP之间的关系WebSocket和HTTP一样都是基于TCP的应用层协议。WebSocket协议和HTTP协议是两种不同的东西。客户端开始建立WebSocket连接时要发送一个header标记了 Upgrade的HTTP请求,表示请求协议升级。所以服务器端做出响应的简便方法是,直接在现有的HTTP服务器软件和现有的端口上实现WebSocket协议,然后再回一个状态..._websocket三次握手详解

小学计算机反思案例,小学数学有效教学案例及反思-程序员宅基地

文章浏览阅读210次。小学数学有效教学案例及反思《植树问题》教学设计及反思一、教学目标:1、知识与技能目标:通过动手实践,合作探究,让学生在做数学的过程中经历由现实问题到数学建模,理解并掌握植树棵数与间隔数之间的关系。2、过程与方法目标:通过学生自主实小学数学教学案例及反思小学数学教学案例及反思学生的认知结构,只有在经历学习活动的过程中主动才能完成。只有学生本人的积极思考、主动探索,才能有所发现、有所创新。但在不少学校..._小学数学教学案例博客

HBuilder的下载与使用(详细步骤)_hbuilder官网-程序员宅基地

文章浏览阅读10w+次,点赞125次,收藏651次。一、HBuilder IDE的下载HBuilder下载官网地址:在地址栏中直接输入https://www.dcloud.io或者直接点击下面的链接DCloud - HBuilder、HBuilderX、uni-app、uniapp、5+、5plus、mui、wap2app、流应用、HTML5、小程序开发、跨平台App、多端框架进入官网,免费下载最新版的HBuilder。HBuilder目前有两个版本,一个是windows版,一个是mac版。下载的时候根据自己的电脑选择适合自己的版本。_hbuilder官网

centos7删除文件夹命令_CentOS7文件(文件夹)复制、移动与删除命令介绍-程序员宅基地

文章浏览阅读9k次,点赞2次,收藏10次。在使用Centos7系统时,一般都需要管理大量的文件(文件夹),这样就要需要用到一些文件管理命令。本文以第一、文件(文件夹)复制命令命令格式:cp [-adfilprsu] 源文件(source) 目标文件(destination)cp [option] source1 source2 source3 … directory-adfilprsu参数说明:-a:是指archive的意思,也说是指复制..._centos7删除文件夹

上下跳动的箭头 css_h5 箭头抖动-程序员宅基地

文章浏览阅读2.9k次。在H5场景动画时,常常会用到着一样一个效果,箭头持续上下跳动来引导用户上下滑动整个页面<!DOCTYPE html ><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <tit_h5 箭头抖动

随便推点

【Java 虚拟机原理】垃圾回收算法 ( 标记-清除算法 | 复制算法 | 标记-整理算法 )_java 垃圾回收算法 复制算法有标记过程吗-程序员宅基地

文章浏览阅读2.2k次,点赞9次,收藏38次。总结、一、标记清除算法、二、复制算法、三、标记-整理算法、_java 垃圾回收算法 复制算法有标记过程吗

虚幻引擎5 (UE5):完整的初学者学习教程_虚幻5教程-程序员宅基地

文章浏览阅读4.2w次,点赞22次,收藏164次。流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:6.26 GB |时长:7h 32m虚幻引擎5的最快入门方法云桥网络 平台获取教程你会学到什么虚幻引擎虚幻引擎5游戏设计建筑设计产品设计描述欢迎初学者全面了解新的虚幻引擎5。专业人士和初学者都可以使用UE5,借助新的Lumen Lighting System和Nanite虚拟几何引擎,创建令人惊艳的实时内容。作为一名游戏、架构.._虚幻5教程

c语言json库如何编译,C语言的JSON库Jansson-程序员宅基地

文章浏览阅读473次。Jansson概述Jansson是一个C语言库,用于编码,解码和处理JSON数据。其主要特点和设计原则是:简单直观的API和数据模型全面的文档不依赖其他库完全支持Unicode(UTF-8)广泛的测试套件Jansson的API稳定可靠,可广泛应用于生产中。它可以在多种平台上运行,包括多种类Unix系统和windows。它适用于任何系统,包括台式机,服务器和小型嵌入式系统。Jansson是以MIT协..._jansson库编译

学术与产业的碰撞:AI TIME 走进浙大专场活动-程序员宅基地

文章浏览阅读405次。点击蓝字关注我们AI TIME欢迎每一位AI爱好者的加入!2021 年 7 月 13 日,「AI TIME 走进浙大」论坛在浙江大学公共管理学院隆重举行。此次活动得到了浙江大学计算机学院人..._kdd 杨洋 电力异常

PHP加密解密函数authcode-程序员宅基地

文章浏览阅读46次。核心提示:康盛的 authcode 函数可以说对中国的PHP界作出了重大贡献。包括康盛自己的产品,以及大部分中国使用PHP的公司都用这个函数进行加密,authcode 是使用异或运算进行加密和解密。康盛的 authcode 函数可以说对中国的PHP界作出了重大贡献。包括康盛自己的产品,以及大部分中国使用PHP的公司都用这个函数进行加密,authcode 是使用异或运算进行加密和解密。..._php config('auth_code')

c#利用word控件将pdf转为word_c# pdf转word-程序员宅基地

文章浏览阅读466次,点赞10次,收藏8次。c#利用word控件将pdf转为word文档_c# pdf转word