最全面的SVN使用方式【TortoiseSVN详解及常用命令】

什么是 SVN

  • SVN 全称 SubVersion
  • SVN 是近年来崛起的版本管理工具,是 CVS 的接班人。目前,绝大多数软件公司都使用 SVN 作为代码版本管理软件。

特点

  • 操作简单,入门容易
  • 支持跨平台(Window/Linux/MacOS)
  • 支持版本回退功能(时间机器)

获取 SVN 软件

属于 C/S 结构软件(客户端与服务器端)

服务端软件:VisualSVN

客户端软件:TortoiseSVN

win64

win64 中文包

win32

win32 中文包

点击下一步直至安装结束即可。

服务端配置

一、创建版本仓库

  1. 首先在 SVN 服务器端创建一个公有目录 WebApp 做为项目目录

  2. 在 WebApp 目录下创建 Shop 文件夹,做为 Shop(版本仓库)
    在这里插入图片描述

  3. 创建版本仓库,基本语法:
    svnadmin create Shop 文件夹路径(Shop 仓库)
    在这里插入图片描述
    如果 Shop 仓库配置成功,那么 Shop 文件夹会显示以下目录结构
    在这里插入图片描述

二、启动服务端

基本语法:
svnserve -d(后台运行) -r(监管目录) 版本仓库目录
在这里插入图片描述

通过以上指令,我们的 svn://localhost 或 ip 地址就可以直接指向 Shop 版本仓库

三、客户端连接

Apache http://localhost 或(ip 地址)访问到 htdocs 目录下的相关文件(监管)

SVN svn://localhost 或(ip 地址)访问到相关数据仓库(如 Shop 仓库)

  • 如果有多个项目的话,svnserve可以启动项目的父目录,客户端连接的时候只需要带上项目的文件路径即可
  • http://localhost/Shop

四、权限控制

匿名用户权限控制

默认情况下,SVN 服务器是不允许匿名用户上传文件到服务器端的,所以必须更改系统相关配置文件。
在这里插入图片描述

更改第 19 行代码,去除前面的空格以及#号,更改其值为 write(可读写)
在这里插入图片描述

账号权限控制
  1. 关闭匿名用户权限控制 svnserve.conf文件
    在这里插入图片描述

  2. 开启 authz文件和passwd文件
    在这里插入图片描述

  3. 编写passwd文件相关用户名与密码
    在这里插入图片描述

  4. 编写authz授权文件

    • 设置 groups 组
      在这里插入图片描述

    • 给 groups 设置权限
      在这里插入图片描述

      组中如有多个用户用逗号分开,如:admin = admin,root

      • r:可读
      • w:可写
      • *:其他所有用户
  5. 配置成功后重新拉取或提交文件需要用户登录
    在这里插入图片描述

svn 客户端软件连接 SVN 服务器

1. Checkout 检出

首先在你的项目目录鼠标右键 TortoiseSVN 版本库浏览器输出 SVN 服务器地址:
在这里插入图片描述

在这里插入图片描述

svn://SVN 服务器地址 Shop 项目(仓库)
在这里插入图片描述

检出成功之后该目录下会多出一个.svn 隐藏文件,代表检出成功
在这里插入图片描述

TortoiseSVN图标集

常规图标

在这里插入图片描述

含义:当客户端文件与服务器端文件完全同步时,系统会显示以上图标

冲突图标

在这里插入图片描述

含义:当客户端提交的文件与服务器端数据有冲突,系统会显示以上图标

删除图标

在这里插入图片描述

含义:当服务端数据已删除,那么客户端该文件将显示以上图标

增加图标

在这里插入图片描述

含义:当我们编写文档已添加到提交队列,那么系统将自动显示以上图标

无版本控制图标

在这里插入图片描述

含义:当我们编写的文件没有添加到上传队列,系统将自动显示以上图标

修改图标

在这里插入图片描述

含义:当客户端文件有修改但未提交,此时将自动显示以上图标

只读图标

在这里插入图片描述

含义:当客户端文件以只读形式存在时,将自动显示以上图标

锁定图标

在这里插入图片描述

含义:当服务端数据已锁定,那么客户端文件将自动显示以上图标

忽略图标

在这里插入图片描述

含义:客户端文件已忽略,不需要进行提交上传,那么将自动显示以上图标

TortoiseSVN使用详解

(Checkout)检出操作

  • 链接到SVN服务器端
    在这里插入图片描述

  • 拉取服务端数据到本地
    在这里插入图片描述

注意:Checkout只在第一次链接时操作一次,以后如果进行更新操作请使用Update(更新指令)

(Commit)提交操作

将本地修改的代码提交到远程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(Update更新操作)

将远程修改的代码更新到本地
在这里插入图片描述

忽略功能

有些文件不希望上传至svn服务器,应该将该文件或该类型的文件添加至忽略列表

  1. 忽略某个指定的文件
    在这里插入图片描述

  2. 忽略某类型文件
    在这里插入图片描述

版本回退

有些时候,软件的运行可能使开发者或使用者不满意,这时我们需要把当前版本退回到以前的某个版本。

  1. 在项目空白处鼠标右键,采用如下图所示操作
    在这里插入图片描述

  2. 根据日志或者版本号进行版本回退
    在这里插入图片描述

  3. 根据日志信息选择要回退的状态,点击确定即可
    在这里插入图片描述

版本冲突

在实际项目开发中,如果两个人同时修改某个文件就会产生版本冲突问题。

点击commit的时候发现如下错误,有冲突,禁止提交
在这里插入图片描述

解决方案

  1. update远程代码到本地
    在这里插入图片描述
  • index.php :整合后的index.php冲突文件
  • index.php.mine :本地修改后的index.php文件
  • index.php.r6 :index.php的起始文件(最初的)
  • index.php.r7 :另外一位同事修改后的index.php文件
  1. 删除其他index.php文件,只保留整合后的index.php
  • 打开index.php文件,手动将冲突解决
  • 解决之后重新commit即可

svn 的常用命令

检出 checkout | co

从服务器拉取代码到本地

格式:svn co [svn 服务器 url] [检出本地的 path]

svn co svn://47.106.183.193/helloworld ./
# svn在检出的时候可以指定用户名和密码
svn co svn://47.106.183.193/helloworld --username=xxx --password=yyy ./

添加 add

将新增加的文件加入版本控制体系

svn add 文件名

提交 commit | ci

将本地变更的代码提交到 svn 服务器

格式:svn commit -m "xxx" [文件名]

svn ci -m "第一次提交" hello.txt

提交完之后,会发现版本号自动增加了

更新 update | up

把服务器端文件所产生的所有修改下载到本地

svn up

查看

# 查看版本信息
svn log
# 查看文件状态
svn status
# 查看差异
svn diff

版本回退

  1. 还未提交

    当我们想放弃对文件的修改,可以使用 svn revert 命令,将撤销任何文件或目录里的局部更改,revert 操作不单单可以使单个文件恢复原状, 而且可以使整个目录恢复原状。恢复目录需要携带 -R 参数

svn revert 文件名
svn revert -R 目录名
  1. 已经提交

    对于已经提交的修改,我们需要使用 merge 命令进行回退,同时需要携带 -r 参数

svn merge -r 最新版本号:目标版本号 目录名或文件名
## 如:从版本100 回退到版本99
svn merge -r 100:99 目录名或文件名

冲突解决

当多人开发同一个文件时,我们进行commit或者update的时候,可能会发生冲突

发生冲突时,我们本地除了原文件会多出三个文件,总共四个文件

  • xxx 文件:整合后的冲突文件
  • xxx.mine 文件 :发生冲突时本地文件内容
  • xxx.r[小版本号]文件 :发生冲突前文件内容
  • xxx.r[大版本号]文件 :发生冲突时服务器端文件内容

我们只需要关注 xxx文件,因为它本身就是整合后的冲突文件,只需要将该文件内的冲突解决完即可,其他三个文件可以删除掉。

xxx 文件内容冲突解决之后,执行svn ci提交即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值