TortoiseSVN 详细操作指南

news2025/1/8 19:00:29

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。

                                                                              热爱技术的小郑

1、引言

考虑以下几种情况:

  • 你是否在一个团队中效力?
  • 你修改文件而他人也在修改,你修改的内容丢失了?
  • 你保存了文件可又后悔了,想把这个文件恢复到修改前的状态?
  • 你希望能够查看一个文件的前世?
  • 你在项目中发现了 BUG,想立案侦查它是何时产生的?
  • 你想快速比较一个文件的幼年和中年的差别?

如果这些问题你都遇到了,那就使用 TortoiseSVN 吧。TortoiseSVN 是 Subversion 的客户端。Subversion 是针对 CVS 的不足而开发的版本控制系统

2、基本概念

2.1 版本库 Repository

Subversion 是版本管理的后台系统,其核心是保存数据的“版本库-repository”。 版本库用分层的“文件-目录”文件系统数来存储数据。连接到版本库的客户能读写数据。版本库记录了你的每一次修改!客户端可以从版本库中取到过去的任何一个版本。
典型的服务器/客户机模型如下图:
在这里插入图片描述

2.2 图标重载

TortoiseSVN 最明显的特性之一就是图标重载,重载的图标显示在你的工作副本文件上。你一眼就可以看到文件被修改过了。根据文件的 Subversion 状态的不同,重载的图标
也不同。
显示重载图标的资源管理器:
在这里插入图片描述

各图标含义说明:

在这里插入图片描述

一个新检出的工作复本使用绿色的对勾做重载。表示 Subversion 状态正常.


在这里插入图片描述

在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方式,你可以很容易地看出哪些文件从你上次更新工作复本后被修改过,需要被提交。


在这里插入图片描述

如果在提交的过程中出现了冲突图标变成黄色感叹号。


在这里插入图片描述

如果你给一个文件设置了 svn:needs-lock 属性,Subversion 会让此文件只读,直到你获得文件锁。只读文件具有这个重载图标来表示你必须在编辑之前先得到一个锁。


在这里插入图片描述

如果你拥有了一个文件的锁,并且 Subversion 状态是正常,这个重载图标就提醒你如果不使用该文件的话应该释放锁,允许别人提交对该文件的修改。


在这里插入图片描述

这个图标表示当前文件夹下的某些文件或文件夹已经被计划从版本控制中删除,或是该文件夹下某个受控的文件丢失了。


在这里插入图片描述

加号告诉你有一个文件或是目录已经被计划加入版本控制。


对于未受控的文件没有图标重载。这么做是因为图标重载的数量受到系统的限制,应该要节约使用。事实上,你会发现并不是所有的图标被使用在你的系统上。这是由于 Windows限制图标重载不能超过 15 个。Windows 自己用了 4 个,剩下 11 个可被别的应用程序使用。如果你同时使用了 TortoiseCVS,就没有足够的空位了,所以 TortoiseSVN 希望成为一个“良好市民™”,限制自身的使用,为别的应用留下机会

2.3. 右键菜单

所有的 TortoiseSVN 命令都是通过 windows 资源管理器的右键菜单执行。右键点击一个文件或者文件夹,大多数菜单项都能够直接显示。一个命令是否显示取决于这个文件或文件夹或者它们的父文件夹是否受版本控制。

版本控制下一个目录的右键菜单:

在这里插入图片描述

2.4. 拖放

在工作副本里右键拖拽文件或目录到新的位置,或者右键拖拽一个非版本控制的文件或文件夹到一个版本控制目录下的时候,右键菜单还能够出现其他的命令。

2.5. 版本库浏览器

TortoiseSVN 的版本库浏览器类似与 Windows 的资源管理器,在版本库浏览器中,能查看版本库的结构和状态。

点击鼠标右键,在弹出的菜单中选择“TortoiseSVN”->“browser

在弹出版本库 URL 地址对话框中输入想要查看的版本库URL 地址:
在这里插入图片描述
点击“OK”,打开版本库浏览器:
在这里插入图片描述

  • 在版本库浏览器中你可以执行比如拷贝,转移,重命名等,这些操作直接在版本库上进行。

  • 在版本库浏览器窗口的顶端输入版本库的 URL 地址和你要浏览的版本号。可以打开特定的版本。

  • 你也可以在版本库浏览器中使用拖拽的操作。如果你把一个文件夹从资源管理器中拖拽到版本库浏览器中,那就实现该文件夹的导入功能。有一点要注意,在导入多个文件时,必须分开一个一个地拖进去

  • 如果要在版本库浏览器中移动一个文件,只用左键拖到它要去的位置。如果你更愿意去拷贝该文件的话,使用这个按住左键拖 。操作就像在资源管理器中一样,拷贝时指针“加” 来标记。

  • 如果你要拷贝/移动一个文件或文件夹到一个新的位置并重命名,你可以右键拖 或者
    按住右键拖这个文件,而不用左键拖。这样,就会显示对话框来为该文件或文件夹重命
    名。

  • 右键菜单
    在版本库浏览器的文件或者目录上点击右键,会出现不同的菜单,这些菜单提供了丰富的功能。

在这里插入图片描述

3. 日常操作

3.1. 项目入库 Import

所谓的 Import,就是把本地想要进行版本控制的项目文件提交到服务器的版本库中。此时的 SVN 服务器上只是创建了一个空的版本库,并没有包含任何项目文件。

在将项目导入到版本库前,应该进行以下操作:

  • 新建一个临时目录、把项目所需的目录及文件拷贝到此临时目录下。
  • 删除所有构建工程不需要的文件
  • 组织好目录和子目录内的文件

选择临时目录,点击鼠标右键,在弹出的菜单中选择TortoiseSVN”->“Import,会弹出项目导入对话框:
在这里插入图片描述
URL of repository

  • 项目导入到版本库的 URL,可以手工输入,也可以点击后面的按钮,打开版本库浏览对话框,选择所需的版本库。

Import mesage

  • 输入提交日志信息。便于以后查看。
  • 完成后点击“OK“按钮,TortoiseSVN 会把临时目录下所有文件的完整目录树及其内容导入到版本库。
  • 临时目录的文件夹名称不会在版本库中出现,只有这个文件夹下面的内容会在版本库中出现。现在这个工程就存贮在版本库,被版本控制。请注意,你用来存放导入文件的临时目录下的文件并没有被版本控制!你需要检出刚才导入的版本,以便获得受版本控制的工作目录

3.2. 检出工作副本 Check Out

所谓的 Checkout 就是指获得 SVN 服务器端指定的版本库中存储的所有文件,这些文件存在本地的工作副本目录下,并且受到版本控制系统的管理。SVNCheckout
Visual Source SafeCheckout 意义完全不一样,VSS 的 Checkout 指的是检出并且锁定某个文件。

SVNCheck Out 是第一次连接 SVN 库时使用,相当于 VSS 的 Set Working Folder 和 Get Last version 两个命令。

操作方法:
步骤一:新建一个目录
步骤二:在该目录上点击右键,在弹出的菜单中选择“SVN Check Out”:
在这里插入图片描述
步骤三:在弹出的 Check out 对话框中,在 URL of repository 处选择版本库所在路径
在这里插入图片描述
URL of repository
版本库的 URL 地址。

Checkout directory
本地工作目录。
填写好后,点击“OK”按钮,就会把 SVN 服务其上此目录下的内容 Check out 到上面新建的工作目录下。

3.3. 导出项目 Export

所谓 Export,就是把服务器上的项目文件存放到本地目录,Export 到本地目录的这些文件脱离了版本控制系统的控制。一般情况下,为了制作安装包,需要一个“干净“的项目文件。
操作方法:

步骤一:新建一个目录
步骤二:在该目录上点击右键,在弹出的菜单中选择“TortoiseSVN“-> “Export

在这里插入图片描述
URL of respository
版本库的 URL 地址,可以手工填写,也可以点击后面的按钮,打开版本库浏览器查找。

Export directory
导出到本地的目录。

Revision
要导出的版本:
HEAD revision 最新版本
Revision 指定的版本,如果记不住版本号,可以点击“Show log”按钮查找。

设置完成后,点击“OK”按钮,就会把所选择目录下的所有文件包括目录导出到本地目录下。

3.4. Check Out 和 Export 的区别

check out 方式获得版本后,取到的文件仍处于 SVN 版本控制中。
export 导出版本后,导出的文件脱离 SVN 版本控制。

3.5. 添加文件

将要添加的文件或者目录拷贝到上面新建的目录下,然后在文件或者目录上点击右键,在弹出的菜单中选择“TortoiseSVN”->“Add”
在这里插入图片描述
弹出如下对话框:
在这里插入图片描述
SVN 会把准备加入的文件及目录显示出来,可以根据需要选择要添加的文件或者目录。

点击“OK”把文件添加到 SVN 中。

在资源管理器中,要增加的文件或者目录图标上有一个白色红底的感叹号。表示工作目录中的文件和版本库中的文件没有同步。

说明:Add 命令只是告诉 SVN 客户端,这些文件将要纳入版本管理,并没有将这些改变提交到 SVN 服务器,如果要提交到版本库中,需要执行“SVN Commit”操作。

3.6. 修改文件

打开工作目录下的文件,直接进行修改,文件修改后,文件的图标会变化。

3.7. 删除文件

选中要删除的文件或者目录,单击鼠标右键,选择“TortoiseSVN”->“Delete”

在这里插入图片描述
这样删除后,文件或者目录的图标会相应的变化,此时只是本地工作目录下记录了删除动作,SVN 服务器上的文件还没有真正删除,只有执行 Commit 提交后,SVN 服务
器上的文件或者目录才会真正删除。

注意:千万不要用“Delete”键或者来删除文件,这样删除的话,SVN 客户端不会保存删除操作,将无法提交修改。

3.8. 放弃修改

当添加文件、修改文件、删除文件后,发现添加错误、修改错误、或者误删除文件后,想要放弃修改,可以点击鼠标右键,在弹出的菜单中选择“TortoiseSVN”->“Revert”:

在这里插入图片描述
在弹出对话框中,选择要恢复的文件,点击“OK”按钮,就可以恢复到修改前的状态。
在这里插入图片描述
说明:Revet 只能撤销本地的修改,不能撤销已经提交(Commit) 的变更

3.9. 查看修改

在提交前可以查看哪些文件在本地或者服务器上已经做了修改。有时我们对工作副本的许多文件进行了修改,这些文件位于不同的子目录。还有一种情况是我们的工作副本已经很久没有执行 Update 命令,我们想看看工作副本中有哪些文件已经发生修改了,这时就可以在工作副本的最上层目录单击右键,在弹出的菜单中选择“TortoiseSVN”->“Check for modifications”

在这里插入图片描述

出现如下对话框,会列出所修改的文件:
在这里插入图片描述

3.10. 提交入库

确定文件修改正确后,需要把文件提交到 SVN 服务器的版本库中,在需要提交的在文件或者目录上点击鼠标右键,在弹出的菜单中选择“SVN Commit”

在这里插入图片描述
弹出如下提交确认对话框:
在这里插入图片描述
在上面该对话框中,可以根据需要填写提交信息,也可以选择要提交的文件。确定后点击“OK”把修改的文件提交入库。
提交完成后,显示信息如下:
在这里插入图片描述

3.11. 获取最新的版本

第一次获取最新的版本时,需要用 Check out 命令。

当本地已经有工作副本以后,需要获取最新的版本时,需要用 SVNUpdate 命令,相当于 VSS 的 Get Last Version 命令。操作步骤如下:
在工作目录上点击鼠标右键,选择“SVN Update
在这里插入图片描述
说明:如果工作目录下有被修改的文件,或者有被删除的文件,并且还没有提交这些更改时,在执行 Update 命令时,这些文件不会被更新。如果想要放弃当前所有更改,并把本地我文件更新成 SVN 服务器上最新的版本,需要先执行“Revert”命令,放弃所有更改动作,然后再执行“Update”命令。

3.12. 获取特定的版本

有时候我们需要回溯到特定的日期或者是版本,查看当时的文件内容,这就需要使用SVNUpdate to revision 命令。在想要更新的文件或者目录上点击鼠标右键,在弹出的菜
单中选择“TortoiseSVN”->“Update to revision”

在这里插入图片描述
弹出如下 Update 对话框:
在这里插入图片描述
Update 对话框中,可以选择更新到最新版本(HEAD),也可以选择更新到特定的版本(Revision)。如果你记不起准确的版本号码,可能只隐约记得大概的时间,没有关系,点击“Show Log”按钮,就可以回顾历史了:

在这里插入图片描述
所有曾经做过的更改动作,及其日期与对应的版本都会列在此对话框中,选择所需的版
本,按下“OK”按,这个版本就自动填入到 Update 对话框的 Revision 中,在点击“OK”,你所选择的特定版本就会被取到你的工作目录下。

4. 常见问题

状况 1.报“403forbidden”错误

答:权限问题,表示你没有权限访问,请联系管理员,另外要检查输入路径大小写是否一致,SVN 区分大小写。

状况 2.400 bad request
答:一般都是杀毒软件导致的,请将 SVN 加入到你的可信区。

状况 3.No repository found
答:访问路径不对,请检查你访问的 URL 地址。

状况 4.405 Method not allowed
答:访问断口被封了。

状况 5.Out of date
答:表示版本库的内容比你提交的新,处理方式:先把版本库内容更新下来,然后用你本地的文件覆盖再提交。

状况 6. 提交失败,一个文件夹文字状态“阻碍”,提示“请执行"清理"动作”。
答: 产生这种状态的原因暂未知,可按以下解决方案:

解决方案:
1、备份出现叹号的文件夹
2、新建一个文件夹检出最新版本(无问题的版本)
3、用最新版本对应的文件夹中的.svn 文件夹,替换出现问题的文件夹中的.svn 文件夹,尤其注意要将出现问题的文件夹下的.svn 文件夹完全删除后再替换,以确定这个文件夹版本信息恢复到最新版本。
4、执行清理
5、提交成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/999668.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高压放大器在静电喷涂技术中的应用

高压放大器静电喷涂作为一种表面处理技术,在工业生产和制造领域中得到了广泛应用。然而,在实际的生产应用过程中,高压放大器静电喷涂也面临着生产效率不高、成本过高等问题。因此,如何提高生产效率和降低成本已经成为行业内关注的…

如何在Windows 10/11中重置网络,以及重置后的注意事项有哪些

本文介绍如何在Windows 10和Windows 11中重置网络设置。 如何重置Windows 10网络设置 在Windows10中使用网络重置实用程序相当简单。 一、进入“开始”菜单>“设置”,然后选择“网络和Internet”。 二、在左侧导航窗格中,选择“状态”以确保你正在查看网络状态窗口。然…

PHP调用API接口的方法及实现(内附电商平台商品详情接口案例)

随着互联网、云计算和大数据时代的到来,越来越多的应用程序需要调用第三方的API接口来获取数据,实现数据互通和协同工作。PHP作为一种常用的服务器端语言,也可以通过调用API接口来实现不同系统的数据交互和整合。本文将介绍PHP调用API接口的方…

深入剖析:垃圾回收你真的了解吗?

小熊学Java:https://www.javaxiaobear.cn/ 本文我们重点剖析 JVM 的垃圾回收机制。关于 JVM 垃圾回收机制面试中主要涉及这三个考题: JVM 中有哪些垃圾回收算法?它们各自有什么优劣? CMS 垃圾回收器是怎么工作的?有哪…

2023-9-11 台阶-Nim游戏

题目链接&#xff1a;台阶-Nim游戏 #include <iostream> #include <algorithm>using namespace std;int main() {int n;cin >> n;int res 0;for(int i 1;i < n; i){int x;cin >> x;if(i % 2) res ^ x; }if(res) cout << "Yes" &l…

sql 时间函数

1&#xff0c;前提 今天看同事写的sql里面出现了时间类的函数&#xff0c;平时自己也经常用到&#xff0c;每次都要百度&#xff0c;还不如自己整理记录在一起&#xff0c;方便后续使用。 2&#xff0c;sql时间函数 2.1 获取当前时间&#xff1a; selectNOW() as 当前日期时…

淘宝天猫API接入说明(淘宝天猫商品详情+关键词搜索商品列表)商品详情数据,商品sku数据,商品优惠券数据

业务场景&#xff1a;作为全球最大的 B2C 电子商务平台之一&#xff0c;淘宝天猫平台提供了丰富的商品资源&#xff0c;吸引了大量的全球买家和卖家。为了方便开发者接入淘宝天猫平台&#xff0c;淘宝天猫平台提供了丰富的 API 接口&#xff0c;其中历史价格接口是非常重要的一…

企业资产分散不透明?可能是这个细节没做好!

随着现代社会经济的不断发展&#xff0c;企业资产管理变得愈发重要。资产作为组织的核心资源&#xff0c;包括设备、房产、交通工具、信息技术设备以及其他各种形式的财产&#xff0c;对于保障正常运营和可持续发展至关重要。因此&#xff0c;建立一套高效的资产管理系统成为了…

不会JVM调优,但是领导让你优化一下 JVM 参数,这个工具快速搞定!

出品 | 程序员小奎 转载请联系授权 本文主要分享一款在线虚拟机参数分析工具&#xff0c;内容全文 783 字&#xff0c;预计花 2 分钟读完。 01 介绍 关于 JVM 参数优化配置你是否有以下问题&#xff1a; JVM 参数太多记不住 &#xff1f;导致配置 JVM 参数无从下手。 配置好了…

ps怎么只改变logo的文字颜色,不改变图案颜色

1.首先把图片的psd格式拖进去 2.复制一层 3.使用框选工具选出不需要改的部分 4.选着图层--图层样式--颜色叠加--&#xff08;叠加成你需要的颜色&#xff09; 5.删除框选区域 5&#xff0c;另存为即可 原理就是框选的区域是不受保护的&#xff0c;可以进行操作&#xff0…

多线程使用多场景需要注意的问题

多线程使用多场景需要注意的问题 一.背景 在实际的业务开发中&#xff0c;为了提高效率以及程序的处理能力&#xff0c;经常会出现使用多线程的技术&#xff0c;在使用的过程中有诸多注意点需要关注。二.关注点 1.使用线程池提交多线程任务且指定合理的线程池参数&#xff0c…

SQL优化记录

sql优化主要看执行过程分析看看哪里耗时最多先执行一下计划看看索引用没用用了什么索引只要不是全表扫描&#xff0c;就没事如果没有全表扫描&#xff0c;还慢&#xff0c;就要看索引类型了如果索引类型没问题&#xff0c;就要看是不是查询数据量太大了。这时候就要考虑优化条件…

7年经验之谈 —— 如何高效的开展app的性能测试?

APP性能测试是什么 从网上查了一下&#xff0c;貌似也没什么特别的定义&#xff0c;我这边根据自己的经验给出一个自己的定义&#xff0c;如有巧合纯属雷同。 客户端性能测试就是&#xff0c;从业务和用户的角度出发&#xff0c;设计合理且有效的性能测试场景&#xff0c;制定…

一体化运维管理平台:为企业提供全面监控和运维服务

随着科技的不断发展&#xff0c;信息技术已经渗透到了各行各业中。尤其是对于大多数企业来讲&#xff0c;IT系统的稳定性、安全性和可靠性至关重要。 在现代企业中&#xff0c;一个稳定且高效的IT运维管理系统已经成为企业数字化转型中不可或缺的一部分&#xff0c;它可以帮助…

短视频商城系统的技术架构与最佳实践

短视频商城系统的概念正在迅速崭露头角&#xff0c;它不仅融合了视频内容和电子商务&#xff0c;还需要一个坚固的技术架构来支持其功能。在本文中&#xff0c;我们将探讨构建短视频商城系统的关键技术组件以及最佳实践&#xff0c;并提供一些示例代码来说明这些概念。 技术架…

Flink DataStream 体系

前言 本文隶属于专栏《大数据技术体系》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见大数据技术体系 思维导图 正文 对 Flink 这种以流为核心的分布式计…

中文版开源!这或许是最经典的编程教材

大家好&#xff0c;我是涛哥。 《Think Python》是很多Python初学者的不二入门教材&#xff0c;受到广泛好评。该书原作者是美国Olin工程学院的教授Allen B. Downey&#xff0c;目前该书的原版和中文翻译电子版本都已免费开源。 该书可以直接在官网下载或者阅读英文版第二版&a…

Linux系统编程:文件编程

一 常用API 打开、创建、关闭文件&#xff0c;读写文件&#xff0c;利用man指令查询相关说明 open & create man 2 open 或 man 2 create NAMEopen, creat - open and possibly create a file or deviceSYNOPSIS#include <sys/types.h>#include <sys/stat.h…

海外专线网络费用

在企业海外扩展和开展业务时&#xff0c;建立可靠的网络连接是至关重要的。而海外SD-WAN专线网络作为一种优化广域网连接的解决方案&#xff0c;提供更好的连接质量和性能。本文将介绍海外SD-WAN专线网络的费用组成&#xff0c;帮助企业更好地了解和规划网络投资。 1. 专线租用…

python趣味编程-恐龙克隆游戏

Python 中使用 Turtle 的恐龙克隆游戏免费源代码 使用 Turtle 的恐龙克隆游戏是一个用Python编程语言编码的桌面游戏应用程序。该项目包含在 Chrome 浏览器中克隆实际恐龙游戏的多种功能。该项目可以使正在修读 IT 相关课程的学生受益。这个应用程序非常有趣,可以帮助您学习创…