SVN的简单介绍

  SVN是Subversoin的简称,是一个开源的版本控制系统

  Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,他可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节

早期版本控制使用的是cvs,后来SVN替代了CVS,随着android兴起,出现了GIt版本控制工具.

SVN的概念

这里就会提出来一个问题,就是怎样让系统允许用户共享信息,而不会让他们因为意外而相互干扰?

复制-修改-合并方案(Subversion默认方案)

在这种模型里,每一个客户读取项目配置库建立一个私有工作副本----版本库中文件和目录的本地映射,用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误.

  锁定-修改-解锁方案

在这样的模型里,在一个时间段里配置库的一个文件只允许被一个人修改,此方案不适合软件开发这种工作.

SVN架构

apache为第三方服务器.

Subversion支持Linux和Window,更多的是装在Linux下.(本人就是在window下使用的svb)

svn服务器有两种运行方式:独立服务器和借助apache运行,两种方式各有利弊,用户可以自行选择.

svn存储版本有两种方式:BDB(一种事务安全型类型)和FSFS(一种不需要数据库的存储系统)

因为DBD方式在服务器中断时,可能会锁住数据,所以FSFS方式更安全一点.(所以我选择的是FSFS)

百度到的关于FSFS的介绍:

      

        一种不需要数据库的存储系统。FSFS版本库在单一文件中存储修订版本树,所以版本库中所有的修订版本都在一个子文件夹中有限的几个文件里。事务在单独                                              的子目录中被创建,创建完成后,一个单独的事务文件被创建并移动到修订版本目录,这保证提交是原子性的。因为一个修订版本文件是持久不可改变                                              的,版本库也可以做到热备份,就象Berkeley DB版本库一样。
                           修订版本文件格式代表了一个修订版本的目录结构,文件内容,和其它修订版本树中相关信息。不像Berkeley DB数据库,这种存储格式可跨平台并且与CPU架构                                    无关。因为没有日志或用到共享内存的文件,数据库能被网络文件系统安全的访问和在只读环境下检查。缺少数据库花消同时也意味着版本库的总体体积可以                                  稍小一点。

SVN的安装

SVN是一种集中式管理代码的版本控制系统,原理就是把代码都保存到一个固定的位置(仓库),每次从这个位置拷贝更新代码,进行编辑:再把修改后的代码提交到该目录下.多人协作开发也是如此,因此需要一个类似Oracle或者MYSQL的服务器用于保存和管理文件(要保存的代码等文件)的服务端----VisualSVN Server.还需要一个用户的操作端,用于提交更新检出代码,常用的有Eclipase中的svn插件,以及TottoiseSVN(小乌龟)

SubVersion 官网:http://subversion.apache.org/

VisualSVN下载

本人直接拷过来的安装包,所以这里对如何下载不做详细说明,

搜索网址:https://www.visualsvn.com/server/download/

下载完以后;

直接点next

点击这个选项,然后更改路径.

在这里进行修改路径,更改端口号

等待安装完成

安装完成以后,在桌面上没有快捷方式,然后在这里打开

打开以后出现这样的界面

创建一个新的Repository

这里选第二个选项

然后创建一个新的用户:

设置权限,点击properties

在这里可以将用户的权限设置为read和write    通过add添加用户和remove移除用户

创建组:

 Tortoise(小乌龟)的安装

这里是下载的地址:https://tortoisesvn.net/downloads.html

根据自己的电脑选择32位和64位两个版本的.

本人使用过的是1.9版本的,没有进行下载,就直接进行安装了.

在这里进行改为第一项;

然后这里直接进行安装就可以

剩下的就是等待.

安装完毕.

安装完毕以后,需要进行重启电脑.

获取出来URL

浏览仓库

在这里进行清除缓存,

 checkout

检出svm服务器上的项目:

桌面出现了一个文件

检出后会出现一个隐藏的.svn文件

这样的图标表示没有被svn管理是用一个问号表示,通过添加将这个文件,添加到svn管理

被管理以后的文件是一个+号,然后就可以进行提交文件

提交完成后

update   可以将svn上的内容更新到本地;

更新到历史版本,

查看日志

然后会出现这个页面,因为是第一次,没有其他版本,所以不进行演示了.

delete

标记删除操作,本地文件会删除,我们需要进行提交,才能真正从服务器删除.

导入和导出

导入:就是将本地资源导入到svn服务器中

Export导出项目:和checkout的区别,它不存在.svn文件

冲突问题和解决?

多个用户操作同一份文件时候,就可能产生冲突情况.

这个冲突产生后,如何解决?

我们采用手动Merge,解决冲突后,重新进行提交.

在这里修改,然后,得到自己想要的文件,然后将其他三份文件进行删除.

在Idea的环境下,svn的配置及其使用

注意:(使用idea时,只要登录一次,就可以一直使用svn的功能.)

首先创建一个空的项目

在这里点击:

出现在这个界面

然后会让你选择版本号,我使用的是1.8format

等着进行加载完毕

选择svn的位置(也就是小乌龟的位置)

现在svn安装完毕,在idea中配置也全部完成,

当项目与svn服务器建立联系后,会在右键菜单中出现一个subversion的选项.

将项目发布到svn服务器上

为项目设置为受版本控制(此时项目还没有上传到svn服务器上)

提交项目,将项目发布到svn服务器上

提交项目到svn服务器完毕.

新增项目内容

在项目中添加一个Demo类

提交项目内容

提交完毕后,就会回复原来的颜色

修改项目内容并提交

更新项目

检出项目

断开和svn的连接

要断开svn的连接,需要在idea上安装一个Disconnect插件

重启idea,查看CVS菜单

(本文也有不完美的地方,后续发现会跟着改进)

Subversion版本控制系统的安装和操作.的更多相关文章

  1. svn(subversion)版本控制系统学习与理解

    定义:Apache Subversion(简称SVN,svn),一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS. 从这段话,我们可以得到四点信息: ...

  2. GIT分布式版本控制系统

    Git诞生历史 我想大家还记得Linus torvalds在1991年时发布了Linux操作系统吧,从那以后Linux系统变不断发展壮大,因为Linux系统开源的特性,所以一直接受着来自全球Linux ...

  3. SVN集中式版本控制器的安装、使用与常见问题汇总

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,它采用了分支管理系统,集中式版本控制器 官方网站:https://www.visualsvn.com/ 下载右边的服务器端,左边的客 ...

  4. Subversion与TortoiseSVN的安装

    首先介绍一下Subversion与TortoiseSVN两者之间的关系: Subversion是一种集中分享信息的系统,它的核心是版本库,储存所有的数据.版本库按照文件树形式储存数据-包括文件和目录. ...

  5. 手把手教你玩转Git分布式版本控制系统! (转载)

    目录 Git诞生历史 Git环境准备 Git安装部署 Git常用命令 Git基本操作 Git管理分支结构 Git管理标签 GitLab安装部署 GitHub托管服务 Git客户端工具 Git诞生历史 ...

  6. 手把手教你玩转Git分布式版本控制系统!

    目录 Git诞生历史 Git环境准备 Git安装部署 Git常用命令 Git基本操作 Git管理分支结构 Git管理标签 GitLab安装部署 GitHub托管服务 Git客户端工具 1 Git诞生历 ...

  7. Dubbo入门到精通学习笔记(三):持续集成管理平台之SVN版本管理系统的安装和使用

    文章目录 持续集成管理平台介绍 持续集成介绍 持续集成管理平台的组成 持续集成实践介绍 即将学习 SVN版本管理系统的安装 安装 Subversion + Apache 安装 jsvnadmin 简单 ...

  8. 【山外笔记-工具框架】SVN版本控制系统

    [山外笔记-框架工具]SVN版本控制系统 学习资料: 1.本文打印版下载地址:[山外笔记-框架工具笔记]SVN版本控制工具-打印版.pdf 2.SVN和TortoiseSVN在线中文文档:http:/ ...

  9. 版本控制系统Subversion

    系统提供撤销的功能对我们实际开发中特别重要.改动后撤销几乎也是我们每个人经常做的事情.再多人进行同一个项目的开发或者测试的时候,版本的唯一性(类似于临界区资源),也就是说A 和B 两个人协同工作的时候 ...

随机推荐

  1. Django 框架 基本知识

    一.什么事web框架 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支持结构,使用框架可以使我们快速开发特定的系统,简单来说,就是讲实现方式的底层结构进行封装,提供相应的 ...

  2. 对比损失(Contrastive Loss)学习【转载】

    转自:https://blog.csdn.net/autocyz/article/details/53149760 https://www.tensorflow.org/tutorials/repre ...

  3. Xcode $(SRCROOT)和$(PROJECT_DIR)区别

    $(SRCROOT)代表的时项目根目录下 $(PROJECT_DIR)代表的是整个项目 PS:往项目添加文件时,例如.a等,要先show in finder ,复制到项目中,然后再拖到xcode项目中 ...

  4. SignalR WebSocket Error during WebSocket handshake: net::ERR_CONNECTION_RESET

    system.web 节点添加: <httpRuntime maxRequestLength="104857600" executionTimeout="1200& ...

  5. 数据加密之MD5加密

    MD5是一个安全的散列算法,有两个特点:1.输入两个不同的明文(一段原始的数字信息)不会得到相同的输出值2.根据输出值,不能得到原始的明文,即过程不可逆所以要解密MD5没有现成的算法,只能用穷举法,把 ...

  6. Unity 2D入门基础教程之僵尸先生

    注:这是根据网上教程完成的. 翻译:http://blog.1vr.cn/?p=1422 原文:http://www.raywenderlich.com/61532/unity-2d-tutorial ...

  7. java 之多线程

    多线程基本概念_程序_线程 1.1程序.进程.线程 程序:Program是一个指令的集合 进程:Process(正在执行中的程序)是一个静态的概念.进程是程序的一次静态执行过程,占用特定的地址空间.每 ...

  8. CSS background-image背景图片相关介绍

    这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...

  9. sql server行列转化和行列置换

    行列转换: 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 李四 物理 94 想变成(得到如下结果): 姓名 语文 数学 物理 ---- - ...

  10. mariadb中创建外键时的一个奇怪的情况

    在建表语句中,将参照的定义放到对应的属性后面,类似于这样: create table tbl2 (id int references tbl1(id)); 发现并没有成功创建外键. 而将参照的定义放到 ...