【SVN】SVN简介,VisualSVN和TortoiseSVN安装和使用

本文详细介绍了Subversion(SVN)版本控制系统,包括其架构、工作原理及与CVS、Git的对比。重点讲解了VisualSVN服务器的安装配置过程,以及TortoiseSVN客户端的常见操作,如浏览仓库、检出、提交、更新等,适合初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. SVN简介

SVN是Subversion的简称,是一个自由开源的版本控制系统。

Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节早期版本控制使用的是CVS,后来SVN替代了CVS,随着android兴起,出现Git版本控制工具,后续我会写Git的博文的。
在这里插入图片描述

  • 那么怎样让系统允许用户共享信息,而不会让他们因意外而互相干扰?
    复制-修改-合并方案(Subversion默认的模式)
    在这种模型里,每一个客户读取项目配置库建立一个私有工作副本——版本库中文件和目录的本地映射。用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。
    锁定-修改-解锁方案
    在这样的模型里,在一个时间段里配置库的一个文件只允许被一个人修改。 此模式不适合软件开发这种工作。

  • SVN架构

    Subversion支持Linux和Windows,更多是安装在Linux下。

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

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

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

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

2. 服务器端VisualSVN安装与配置

  • 下载VisualSVN
    在这里插入图片描述
  • VisualSVN安装与创建仓库
    在这里插入图片描述
    在这里插入图片描述
    在开始运行中录入 services.msc
    在这里插入图片描述
    将这个服务开启 。
    双击桌面图标即可打开
    在这里插入图片描述
  • VisualSVN创建工程目录
    在这里插入图片描述
  • VisualSVN 权限控制
    创建用户

    在这里插入图片描述
  • 创建组

  • 分配权限

    在这里插入图片描述

3. 客户端TortoiseSVN安装与使用

TortoiseSVN是一个基于windows系统的svn客户端图形化界面.

  • 下载Tortoise SVN
    在这里插入图片描述
    在这里插入图片描述
  • 安装Tortoise SVN
    直接傻瓜式安装,安装后记得重启电脑

2.1 Tortoise SVN 常用操作

2.1.1 浏览仓库




如果我们要清空svn客户端的缓存:

2.1.2 checkout

检出svn服务器上的项目

在这里插入图片描述
注意:检出后会有一个.svn隐藏目录
在这里插入图片描述

2.1.3 add

2.1.4 commit


2.1.5 update

Update,它是更新操作,可以将svn服务器上的内容更新到本地

2.1.6 更新到历史版本

查看当前日志

在这里插入图片描述
也可以通过下面的方式来更新历史版本:
在这里插入图片描述
在这里插入图片描述

2.1.7 delete

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

2.1.8 导入与导出

  • Import将本地资源导入到svn服务器
  • Export导出项目,和checkout的区别,它不存在.svn隐藏文件

2.1.9 冲突问题与解决

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

这个冲突产生后如何解决,我们可以采用手动Merge,解决冲突后,重新commit.

HelloWorld.java 它是服务器上的文件与本地文件合并
HelloWorld.java.mine 本地修改后的文件
HelloWorld.java.r3 修改前的文件
HelloWorld.java.r4 对方修改后的文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值