SVN——安装、配置和使用

本文详细介绍了Subversion (SVN) 版本控制系统,包括其简介、主要作用、安装步骤、配置、操作流程(新建仓库、签入、检出、提交与更新)、版本冲突的处理方法。通过实例演示,助您快速上手 SVN 的开发协作与版本管理。

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

SVN介绍

SVN简介

SVN全称为Subversion,他是一个开源代码的版本控制系统

SVN可以管理随着时间改变的数据,这些数据存放于一个中央仓库中。这个中央仓库就像一个普通的代码服务器,不过他会记住每次文件的变动。

SVN支持多人协作共同开发项目,如果多个人修改同一个文件,他能自动将其进行合并,方便程序员进行判断代码的存舍。

主要作用

  • 1、目录版本控制

    SVN实现了一个虚拟的版本管理文件系统。能够依时间跟踪整个目录的变动。目录和文件都能进行版本的控制。

  • 2、真实版本历史

    SVN中,可以增加(add)、删除(delete)、复制(copy)和重命名(rename),无论是文件还是目录,所有新加的文件都会从一个新的、干净的版本开始。

  • 3、自动提交

    一个提交动作,不是全部更新到了档案库中,就是完全不更新。
    这允许程序员以逻辑区间建立并提交变动,以防止当部分提交成功时出现的问题。

基本概念

  • Repository (源代码库):源码统一存放的地方。

  • Checkout (提取):当你手上没有源代码的时候,你需要从Repository checkout 一份。

    从源代码库中下载代码。

  • Commit (提交):如果修改了代码,则需要向 Repository 中 commit 提交代码。

    你修改了代码,需要让别人可以使用,则需要进行提交操作。

  • Update (更新):当你已经 checkout 了一份源代码,update 后就可以和 Repository 上的源代码同步。

    别人提交了,你需要进行更新。

SVN安装

SVN需要使用者去进行下载和安装操作,具体软件分为服务端客户端两部分。

SVN下载(服务端)

下载SVN,可以在下列链接中去进行下载操作:

https://www.visualsvn.com/

在这里插入图片描述
在这里插入图片描述

SVN下载(客户端)

客户端下载,需要进入下列链接:

https://www.tortoisesvn.net/

在这里插入图片描述
在这里插入图片描述

上面的两个安装文件下载成功后,如下:
在这里插入图片描述

服务端安装

1、双击VisualSVN-Server-4.3.6-x64.msi安装文件。
在这里插入图片描述
在这里插入图片描述
2、勾选“同意”,继续下一步
在这里插入图片描述
3、选择默认的安装即可,下一步
在这里插入图片描述
4、设置服务端的安装路径、资源存放目录及端口。
在这里插入图片描述
5、使用默认配置,下一步
在这里插入图片描述
在这里插入图片描述

6、如果出现下列问题,直接选择“ignore”忽略即可
在这里插入图片描述
7、等待安装,安装完成后选择复选框(可不勾选),继续下一步
在这里插入图片描述
8、出现下列界面,表示安装配置完成
在这里插入图片描述
此时的指定磁盘中的文件目录如下所示:
在这里插入图片描述

客户端安装

1、双击TortoiseSVN-1.14.1.29085-x64-svn-1.14.1.msi,进行安装操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改指定位置设置。
在这里插入图片描述

2、设置安装路径
在这里插入图片描述
将安装路径进行设置
在这里插入图片描述

E:\software\SVN\TortoiseSVN\

在这里插入图片描述
3、进行安装操作
在这里插入图片描述
在这里插入图片描述
4、判断是否安装成功
在桌面或者文件夹中,右键鼠标,出现如下工具列表示安装成功:
在这里插入图片描述

SVN配置

将服务端和客户端工具安装成功后,需要对其进行一些设置操作。

服务端需要提供IP端口账号密码等,供客户端使用。

设置IP和端口信息

在这里插入图片描述
在这里插入图片描述
设置Server Name属性,建议使用本机IP

查看本机IP,采取如下方式:
win + R,输入cmd
在这里插入图片描述
在界面中输入ipconfig查看ip信息:
在这里插入图片描述
在这里插入图片描述


【知识扩展:】server name 有哪些设置值?分别是什么含义?

  • 1、127.0.0.1 :只能本地自己访问
  • 2、电脑用户名:只能本地自己访问
  • 3、当前IP:局域网范围其他电脑访问

在这里插入图片描述

设置访问账户和密码

为了开发过程中的安全问题,需要指定谁可以访问,谁可以操作等权限安全问题。

svn 服务端右键 User,选择create user设置账号密码信息。
在这里插入图片描述

在这里插入图片描述
可以支持创建多个账户信息。
在这里插入图片描述

设定分组

右键group,选择create group,设定组名称。
在这里插入图片描述
双击已创建的分组,设定其中的人员信息。
在这里插入图片描述

校验配置账户是否正确

选择服务端Repositories,右键选择Browse,自动打开浏览器,输入账号密码。
在这里插入图片描述
输入账号密码,测试能否成功进入仓库浏览界面。
在这里插入图片描述
在这里插入图片描述

SVN使用

新建版本仓库(可以多个仓库)

1、选择服务端Repositories,右键选择Create new Repository...
在这里插入图片描述
2、选择默认设定,下一步
在这里插入图片描述
3、设定仓库名称,下一步
在这里插入图片描述
4、设定仓库目录
在这里插入图片描述
5、设置仓库访问权限
在这里插入图片描述
6、上面的权限一般选择默认的所有读写权限,继续下一步
在这里插入图片描述
在这里插入图片描述

签入项目到SVN(import)

1、拷贝仓库的URL
在这里插入图片描述
2、选择指定的项目,右键选择TortoiseSVN,选择import。
在这里插入图片描述

3、将上一步拷贝的仓库地址粘贴到地址栏
在这里插入图片描述

4、选择永久权限
在这里插入图片描述
5、输入账户名和密码
在这里插入图片描述
6、导入成功
在这里插入图片描述
7、仓库右键刷新,在服务端能看到下列效果
在这里插入图片描述
在这里插入图片描述

检索项目(check out)

当某些开发者需要下载服务端的代码时,可以按照如下操作进行。
1、复制要下载的项目的远程地址
在这里插入图片描述
2、在需要放代码的文件夹中,右键选择SVN Checkout
在这里插入图片描述
3、输入远程仓库url、文件存放路径等
在这里插入图片描述
4、点击ok后,拉取信息
在这里插入图片描述
在这里插入图片描述

提交操作(commit)

当程序员进行项目代码的编写后,需要将修改后的代码提交至远程仓库中。

1、新建文件,右键选择TortoiseSVN,选择Add,将文件添加到版本列表中(本地)。
在这里插入图片描述
在这里插入图片描述
2、再次右键该文件,选择SVN Commit...将文件提交(远程)
在这里插入图片描述
在这里插入图片描述
3、提交成功
在这里插入图片描述
4、查看仓库
在这里插入图片描述
【小结:】

新增文件都需要add操作!

更新操作(update)

当程序员,针对服务端已存在的文件,进行了修改操作。此时需要将新的代码进行服务端的更新操作。

1、创建新的文件夹B,模拟其他程序员对服务端指定文件做了修改操作
在这里插入图片描述
在这里插入图片描述
2、在B文件夹中,对Test.txt(服务端存在)文件,进行修改操作。
在这里插入图片描述
3、B文件夹将指定的文件进行提交操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4、切换回文件夹A,将文件夹A中的代码和服务端同步
由于此时文件夹A中的Test.txt文件内容还是旧值:
在这里插入图片描述

但服务端的该文件信息,已经被修改!此时如果需要让文件夹A中的信息与服务端数据同步,则需要对文件夹A中的指定文件进行Update操作。
在这里插入图片描述
在这里插入图片描述
执行SVN Update操作之后,文件夹A中的Test.txt文件信息如下所示:
在这里插入图片描述

和服务端的数据保持了一致!!

SVN版本冲突问题解决方式

出现冲突的原因

假设两个程序员,都针对服务端版本号为4时的Test.txt文件进行了修改操作。

程序员A,先进行修改后的提交操作,并且提交成功!

此时服务端指定文件的版本已经由4升到了5

程序员B,在程序员A提交成功后,将自己修改的信息进行提交操作。

此时服务端的文件版本已经不匹配!
导致出现提交失败!

【注意:】SVN 是针对 同时修改 同一行 提交才会出现冲突!

不是同一行,SVN会默认对其进行合并操作!

模拟问题出现

1、新建文件夹A和文件夹B,将服务端的代码进行checkout操作。

之前创建过的文件夹,进行删除测试!

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、A用户修改Test.txt文件中的内容,提交至服务器中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3、B用户也对相同的一行信息进行了修改,并进行提交操作!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

冲突解决的三种选择

  • 1、放弃自己的更新,使用SVN revert(回滚),然后提交。

    这种情况,不需要使用SVN resolved(解决)

  • 2、放弃自己的更新,使用别人的更新。

    使用最新获取的版本,覆盖目标文件。
    执行resolved filename并提交,选择文件–右键–解决。

  • 3、手动解决。

    商讨好代码存留,手动更新文件。
    然后再执行resolved filename来解决冲突,最后提交。

解决冲突

1、在B用户的当前目录下,右键选择SVN Update,执行update(更新)操作。
在这里插入图片描述
执行操作后,当前的指定文件中会出现如下的几种文件:
在这里插入图片描述
2、选择冲突文件,右键,选择TortoiseSVN,然后再选择Edit conflicts
在这里插入图片描述
则会出现如下所示的一个文件比较工具:
在这里插入图片描述
3、解决冲突
【解决一】如果想使用 Theirs 窗口(服务端),则可以直接采取如下操作:
在这里插入图片描述
【解决二】如果想使用自己的,则可以进行如下操作:
在这里插入图片描述
【解决三】如果都想保留,则采取如下方式:
在这里插入图片描述
服务端的 粘贴到此处,将自己的也粘贴到此处
在这里插入图片描述
然后点击Mark as resolved,再点击保存:
在这里插入图片描述
此时,用户B中的指定文件夹中的信息变为如下所示:
在这里插入图片描述
再次执行提交操作:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时,服务端的代码信息如下所示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值