SVN的使用方法(包含VisualSVN和TortoiseSVN)

SVN概述

SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。 [1]

怎样让系统允许用户共享信息,而不会让他们因意外而互相干扰?

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

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

SVN架构

在这里插入图片描述

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

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

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

SVN使用

下载

常用的SVN工具有:windows环境下的服务器软件VisualSVN,客户端软件TortuiseSVN,IDEA集成svn插件将在后面介绍。

VisualSVN和TortoiseSVN的安装包:点击传送

安装

安装VisualSVN的时候注意选择仓库的位置(自定义仓库位置):

在这里插入图片描述

安装结束后注意开启VisualSVN的服务。

VisualSVN创建仓库

(1)选择FSFS类型的仓库

在这里插入图片描述

(2)输入仓库名【bos】完成创建

VisualSVN权限控制

创建用户时要求输入用户名和密码,往组中添加用户,以方便管理。

在这里插入图片描述

在仓库右键选择【Properties】可以对仓库的访问权限进行设置。

在这里插入图片描述

TortoiseSVN常用操作

右键功能介绍

在这里插入图片描述

浏览仓库

正常情况下,在浏览仓库时会要求录入username与password 我们可以清空svn客户端的缓存。设置方法如图。

在这里插入图片描述

浏览仓库:打开【TortoiseSVN】>【右键点击仓库】>【copy URL to ClipBoard】>【通过浏览器打开可以看见仓库】

在这里插入图片描述

checkout

在任意一个目录内右键选择【SVN Checkout】,然后下载仓库内容

在这里插入图片描述

add

将要提交的文件添加到暂存区(?git中是这个说法,svn中求告知)。

在这里插入图片描述

选择【add】后,文件上会出现一个【+】。

commit

在【bos】目录内右键【SVN Commit】可以提交更改到仓库中去。

在这里插入图片描述

update

将仓库最新版本更新到本地。

在这里插入图片描述

回退到历史版本

(1)回退到上一个版本

在这里插入图片描述

(2)回退到指定版本

在这里插入图片描述

delete

将【文件】/【目录】删除,下一步需要【commit】,才能从仓库中删除。

导入与导出

Export

将仓库内容导出到目录中。导出的内容不包括【.svn目录】。

Import

将本地资源导入到svn服务器。

在这里插入图片描述

冲突问题与解决

问题

目录【aaa】和【bbb】都关联的【bos】仓库,二者都保持最新版本(目录内容完全一致)。

在【aaa】的【readme.txt】中添加内容:aaa,然后执行【commit】

在这里插入图片描述

在【bbb】目录不执行【SVN update】,然后直接在【readme.txt】中添加内容:bbb,然后执行【commit】,报错。

在这里插入图片描述

问题解决

在上述问题产生后,点击【ok】后弹出下面的窗口。

在这里插入图片描述

这个窗口给了我们两个选择:【update】和【cancel】。

(1)选择【update】,现执行【SVN update】,然后执行【commit】。

(2)选择【cancel】,则选择了手动解决冲突,会弹出下面窗口。

在这里插入图片描述

弹出窗口后,会产生三个文件,下面是文件的说明。

readme.txt 它是服务器上的文件与本地文件合并
readme.txt.mine 本地修改后的文件
readme.txt.r9 修改前的文件
readme.txt.r10 对方修改后的文件

下面来解决冲突

(1)选择【Edit conflicts】

在这里插入图片描述

(2)调整代码顺序,选择需要的代码

在这里插入图片描述

(3)调整结束

在这里插入图片描述

(4)保存退出,然后重新执行【commit】,就解决了冲突。

SVN规范

在VisualSVN中创建仓库时,可以选择svn目录结构,如下图所示。

在这里插入图片描述

  • Trunk 主干目录,此目录下的文件为基准文件
  • Branches 用于开发的分支目录
  • Tags 用于发布的版本目录

tags使用场景:

假设有一个项目OA,我们完成了1.0版本,这时就可以打一个tags。

branches使用场景:

后续我们在OA项目上添加一个新的模块(及时通讯),我们就可以开一个分支,又有一个公司需要在我们OA基础上添加财务管理模块,我们又可以打一个分支。我们后续针对OA的1.0版本在升级,我们不需要原来附加功能,就可以在原来的主干上继续开发,形成OA2.0版本,开发完成后就可以在打一个tags。

分支与标记

分支或标记规范

分支的定义规则:Project name+日期时间+功能点

Tags的定义规则Project name+版本号

版本号定义为三段数字。编号xxx.xxx.xxx 第一个:革命性的产品升级版,第二个:新功能版,第三个:修正bug。

打分支或标记

准备一个带【svn目录结构】的仓库【demo】,向【trunk】导入一些内容。

准备两个文件夹,一个命名【分支】,一个命名【主干】,然后从【demo > trunk】执行【checkout】到【主干】。

在【主干】文件夹内右键点击【branch/tag】,然后选择分支。

在这里插入图片描述

成功打了一个分支后,可以看见

在这里插入图片描述

分支合并到主干

从【demo > branches】执行【checkout】到【分支】。

在这里插入图片描述

注意,此时【分支】和【主干】内容完全一致。

打开【分支】,修改代码,然后执行【commit】,这时,【分支】和【主干】不一致了。

在这里插入图片描述

切换到【主干】,右键【TortoiseSVN】> 【Merge…】,然后进行下面的操作,最后再执行【commit】,可以看见代码已经变成合并后的样子了。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值