SVN使用小技巧

  • 一、SVN基本概念
  • 二、服务端搭建
  • 三、Windows下客户端TortoiseSVN的使用
    • (1)安装
    • (2)下载汉化包
    • (3)检出checkout
    • (4)更新Update
    • (5)提交Commit
      • A、增加两个文件,提交至远程仓库
      • B、修改某个文件的内容,提交至远程仓库
      • C、两个人同时修改了同一文件(非同一位置),没有更新即提交
      • D、两个人同时修改了同一文件(同一位置),进行提交
    • (6)show log查看提交日志
    • (7)获取历史版本
    • (8)还原
    • (9)重定向
    • (10)清理

一、SVN基本概念

Apache Subversion通常被缩写成 SVN,是一个开源的版本控制系统,以中央仓库的形式管理资源,同时会记录每一次文件的变动,且每一次变动对应唯一的版本号,用户可以从中央仓库下载版本至本地磁盘也叫作本地仓库进行修改,修改完之后需要提交至中央仓库,本地仓库为用户个人独有,因此可实现多用户协同办公的目的。SVN 分为客户端、服务端。客户端部署在用户本地,服务端一般部署在linux服务器上。

二、服务端搭建

linux端的SVN服务端自行搭建可参考部门SVN服务器迁移经验总结
如果仅是学习,可直接使用免费的、在线的svn仓库SVNbucket:https://svnbucket.com/

三、Windows下客户端TortoiseSVN的使用

(1)安装

去TortoiseSVN官网下载,官网地址:https://tortoisesvn.net/downloads.html
下载完成后,进行安装,安装过程如下:


Location可根据自己的需要进行修改,我这里直接以默认安装地址进行安装。



安装完成后,会要求电脑重启,可以选择立即重启也可后续自行重启。

当鼠标右键时,有出现SVN checkout和TortoiseSVN时,表示安装成功。

(2)下载汉化包

TortoseSVN下载默认安装的语言是英语,如果想要使用中文版,可以在官网下载汉化包:https://tortoisesvn.net/downloads.html

安装时,直接勾选Configure TortoiseSVN to use this language,会直接配置成中文语言,或者在TortoiseSVN --setting中设置也可。

在鼠标右键点击TortoiseSVN,选择setting,配置language:

(3)检出checkout

Checkout 操作是用来从远程版本仓库创建一个工作副本到本地。可以checkout一个目录,或者checkout一个文件。
操作过程:
鼠标右键选择Checkout,出现如下面板,按规则填写信息进行checkout:

checkout Depth(检出深度):
(1)full recursive :完全递归
(2)immediate children,including folders:直接子节点和子目录
(3)only file children:仅文件子节点
(4)only this item:仅此项
一般都是直接选择full recursive 完全递归检出。

首次checkout时,会提示输入用户名和密码,勾选永久保存,后续checkout就不需要重复输入用户名和密码啦。

checkout完成,本地目录下会发现存在.svn目录。

(4)更新Update

从远程版本仓库上将最新版本更新至本地仓库。一般在个人修改提交前都需要更新一下,防止出现冲突问题。
在checkout后的目录下,鼠标右键查看,会出现SVN Update按键,点击该按键即可实现本地仓库与远程仓库同步更新的内容。

(5)提交Commit

当本地仓库个人做了修改并调试通过后,需要提交至远程仓库,以便其他合作者能够获取到修改的内容。提交的过程是一个原子性操作,要么全部成功,要么全部不成功。当有一个文件提交失败时,当前批次提交的所有内容都会回滚,不会部分提交至远程仓库。

A、增加两个文件,提交至远程仓库

①增加两个文件:

②鼠标右键,点击SVN Commit:

③出现如下窗口,会显示修改的文件列表,根据个人修改勾选需要提交的文件,并填写相应的提交日志信息:

④提交成功:

B、修改某个文件的内容,提交至远程仓库

①修改test.doc的内容:

②提交该修改内容:

③提交成功:

④在提交之前也可以在提交的文件上双击,查看文件的修改是否是自己需要提交的内容:


确认后,确实是个人修改后需要提交的内容,即在提交页面勾选该文件,进行提交。
PS:有时候,自动化工程中,配置相关的文件,在本地需要修改后才能执行,但这些修改是不需要提交至远程仓库的。所以在提交的时候,配置相关的文件不应该被提交至远程仓库。

C、两个人同时修改了同一文件(非同一位置),没有更新即提交

①远程仓库最新版本和本地仓库做修改前的最新的版本不是一个版本:


②直接点击SVN Commit,提示提交失败,因为已经过时:

③点击上方OK按钮之后,会提示您进行Update操作:

④点击Update,会自动将最新的内容拉取到本地,进行更新后再commit。
⑤或者自己在本地仓库目录下,鼠标右键选择SVN Update进行更新后,再进行SVN Commit。

D、两个人同时修改了同一文件(同一位置),进行提交

如果两个人修改了同一位置,此时就会出现冲突,该冲突需要人工介入,解决冲突后,才可以提交成功。
①出现冲突时,会多出现3个文件(个人修改前本地仓库最新版本为11,远程仓库目前最新版本号为13):

②也可以直接打开name.py文件(分别是个人修改的内容.mine,本地修改前最新版本内容.r11,远程仓库最新版本内容.r13):

③根据三个版本的内容,解决冲突。(具体如何修改代码才是最好的解决办法,需要根据个人的具体业务场景来)

④然后将多出的三个文件进行删除后,再次提交内容。

(6)show log查看提交日志

查看提交日志,了解当前仓库的修改情况,具体由哪些人修改了哪些内容,了解当前项目的进度。
鼠标右键,Tortoise SVN–>show log:

其中可以查看到对应的版本号、动作、作者、时间、日志消息。

(7)获取历史版本

当两个的项目都在同一系统上做修改时,需要用前一个稳定版本作为基线,进行B项目的开发,可以从当前A项目的历史版本中获取到前一个稳定版本,而不包含当前正在开发的A项目的代码。

根据版本号进行获取,版本号可以点击Show log按钮查看(HEAD revision是最新版本):

(8)还原

当你在本地仓库修改调试后,发现当前修改并不是最优的修改方式,所做的修改不想要了,可以执行还原操作,将本地已修改的内容进行回退,回退到修改前的最新版本。
可根据需要还原一个或多个文件或目录。




如果已经提交了的内容想要还原,可以结合【获取历史版本】操作和【commit】操作。
先使用获取历史版本方式获取到前一个版本,然后再次重新commit一下,远程仓库的最新版本即变为上一次提交前的最新版本的内容。但版本号是不会回退的。

(9)重定向

当远程仓库发生迁移,无需重新checkout整个仓库到本地仓库,只需要选中本地仓库目录–鼠标右键–TortoiseSVN–relocate修改一下即可。

在To URL中填入新的url地址即可。

(10)清理

在本地仓库进行update时,偶尔会提示“**locked”的错误,这是由于一些操作中断,如磁盘空间不够,用户取消等造成本地仓库被锁定。这时候需要执行一下clear up操作,才可以进行后续的更新和提交。如果当前目录clear up还不行,那就再去父目录clear up。


对应的中文版:


如果还不能解决,只能删除.svn重新checkout一下,checkout之前请做好备份。

SVN介绍及使用总结相关推荐

  1. SVN介绍-如何使用SVN

    吐槽     本文简单介绍SVN.Tortoise SVN.Visual SVN,可以让小白对SVN有正确.初步的理解.     查了很多关于SVN的文章,费了很大时间,我只是想知道怎么用SVN*** ...

  2. JAVAEE——SSH项目实战01:SVN介绍、eclipse插件安装和使用方法

    1 学习目标 1.掌握svn服务端.svn客户端.svn eclipse插件安装方法 2.掌握svn的基本使用方法 2 svn介绍 2.1 项目管理中的版本控制问题 通常软件开发由多人协作开发,如果对 ...

  3. 工具 svn 介绍和简单用法

    什么是svn svn     是 版本(软件每次发布称为一个版本)管理工具 分为 客户端安装包 (一般还有语言包 在设置切换语言) 服务器安装包 安装完桌面右键 出现svn选项为成功 没有请重启 1. ...

  4. 前后端分离完成CRUD和SVN介绍

    跨域访问 什么是跨域访问: ​ 跨域 就是跨域名来访问的数据 哪些属于跨域访问: ​ 不同ip地址: ​ 域名: www.baidu.com(ip 192.168.0.1) www.taobao.co ...

  5. 02~ 一步一步教你使用 SVN之SVN 的介绍

    SVN的介绍 一.学习SVN的主要内容的介绍 1.基本操作:学习SVN有哪些基本操作 2.服务器端的安装配置:SVN中必不可少的2个环境之一,会在下面的课程中介绍服务器如何去安装和配置 3.客户端软件 ...

  6. SVN的安装和介绍以及SVN的配置和使用(包含IDEA集成SVN、SVN解决版本冲突问题)

    文章目录 1. SVN介绍 1.1 SVN简介 1.2 SVN主要作用 1.3 基本概念 1.4 工作流程 1.5 生命周期 1.5.1 创建版本库(Create) 1.5.2 检出(Checkout ...

  7. 【SVN】1. SVN 安装部署

    一. SVN概述 1. SVN 简介   Subversion 版本控制系统 简称 SVN.   SVN 是一个跨平台开放源代码的集中式版本控制系统,可以实现文件及目录的保存及版本回溯.   SVN ...

  8. SVN安装部署方案(一)

    svn介绍 Subversion(SVN)是一个开源的,跨平台的版本控制系统,由CollabNet公司成立于2000年:Subversion作为新一代的版本管理系统,以其目录版本化.原子提交.版本化的 ...

  9. svn学习笔记(一)

    一.svn介绍 1.1 项目管理中的版本控制问题 通常软件开发由多人协作开发,如果对代码文件.配置文件.文档等没有进行版本控制,将会出现很多问题: 备份多个版本,占用磁盘空间大 解决代码冲突困难 容易 ...

最新文章

  1. HTML和jQuery拆分成两个文件
  2. windbg模拟器不准确现象
  3. 资讯|WebRTC M91 更新
  4. Django---Model操作
  5. 一、【Collection、泛型】
  6. 【图像隐写】基于matlab高斯模型JPEG图像隐写【含Matlab源码 367期】
  7. [译]C#控制管理VisualSVN Server
  8. Crack内网通积分规则(基于版本3.4.3035)
  9. 控制寄存器(CR0,CR1,CR2,CR3)和CR4
  10. Python爬虫:对Uniqlo、Zara、HM等快销品牌的门店数量作统计并展示
  11. 多重for循环优化,提升运行效率
  12. Android 实现一个计时器
  13. 怎么增加照片的KB大小
  14. requests模块用法举例
  15. 几种服务分层架构及其对象命名规范
  16. 火山PC文件目录的创建复制移动等操作
  17. 使用 WP Mail SMTP 发送邮件给网站管理员
  18. 视频转动图gif在线工具
  19. 三体智能革命_郭朝晖 | 工业知识软件化:从自动化到智能化
  20. 实体店为什么要做小程序

热门文章

  1. 转一篇关于安装vue脚手架 执行到安装demo:setup e2e tests with nightwacth 要不要选择NO的问题的解释
  2. CSS3精选内容通俗易懂
  3. syslog配置及测试
  4. 苹果手机之间怎么传照片_如何使用蓝牙手机之间传照片
  5. linux 之 Deamon进程
  6. nova7s鸿蒙系统,华为四摄手机nova 2s开放升级GPU Turbo
  7. 中国的漫威,还很遥远么
  8. MTK平台替换签名key方法
  9. fm24c16c语言程序,铁电存储器FM24C16的页面写和任意字节读汇编程序
  10. 解决 E45: 'readonly' option is set (add ! to override)