TortoiseSVN的使用

文章详细介绍了Subversion(SVN)的基本概念和操作,包括版本库、工作拷贝、修订版本的定义,以及导入、导出、检出、提交、冲突解决等核心操作。此外,还提到了用户认证、图标设置和工作周期,帮助理解SVN在协同开发中的作用。

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

基本概念

版本库

SVN保持数据的地方,所有的文件都保存在这个库中,Tortoise访问的就是远程服务器上的Subversion版本库。

工作拷贝

就是工作副本,可将版本库的文件拷贝到本地中,可以任意修改, 不会影响版本库。在你明确地做了特定操作(如commit/conflict)之前,Suvbversion不会把你的修改和其他人的合并,也不会把你的修改展示给别人,你甚至可以拥有同一个项目的多个工作拷贝。通常你的工作拷贝下都有一个以.svn命名的文件夹。

修订版本

当工作拷贝进行提交,版本库接受提交,版本库的内容就会变成工作拷贝的内容。 每当版本库接受了一个提交,文件系统进入了一个新的状态,叫做一次修订(revision),每一个修订版本被赋予了一个独一无二的自然数,一个比一个大。若初始修订号是0,说明版本库没有接受任何提交,是一个空目录。
注:Subversion的修订号是针对整个目录树的,而不是单个文件。每一个修订号代表了一次提交后版本库整个目录树的特定状态,另一种理解是修订号N代表版本库已经经过了N次提交。

导入(import)

将未被版本管理的代码引入SVN系统中,由此开始对它进行版本管理。
###导出(export)
指从版本库中导出文件至本地,但这些文件不受版本控制。

检出(checkout)

从版本库中检出文件至本地形成本地工作拷贝,这些文件受版本控制,是版本库的目录在本地的映射。

提交(checkin/commit)

将工作拷贝的变更内容提交至版本库。

冲突(conflict)

在协同开发的环境下,当两个开发人员对同一个文件的同一行代码进行修改,并且依次提交到仓库的时候,就发生了冲突。这种冲突需要手工消除,因此需要相关人员的沟通,并将形成的解除冲突之后的新版本提交到仓库中。

基本操作

图标设置

对于需要映射到网络磁盘上的工作拷贝显示图标。

查看图标含义

对增加、删除和修改的文件经图(2)设置后均会显示在工作拷贝的目录和文件上,不明白时可查看图中的设置。
在这里插入图片描述

SVN的访问方式

1、直接通过IE访问,即直接用URL地址搜索,这种形式只能查看配置库,下载有
权限
的文件,不能进行修改;
2、通过TortoiseSVN的版本库浏览器访问配置库,可执行
导出/导入/检出/提交等操作。
进入任一文件夹下,右键选择“TortoiseSVN -> 版本库浏览器” -> 输入URL地址(若初次进入会提示输入账号密码)
在跳出版本库浏览器索引栏输入配置库地址。详见下图
在这里插入图片描述

用户认证

认证

在访问配置库时,需要身份认证,将出现如下图登录界面。
在这里插入图片描述
若点击保存认证,客户端就会接收到一个认证请求,它会首先查找用户磁盘中的认证凭证缓存,如果没有发现,或者是缓存的凭证认证失败,客户端会提示用户输入这些认证信息。若保持之后,下次再次访问同一个URL时,不需要身份认证。
若需要清除认证信息,可在TortoiseSVN菜单下的“Settings(设置)”中进行如下设置。点击“Save Data”后清除按钮即可。(当没有保存认证时,改按钮显示灰色,不可用。)
在这里插入图片描述

工作周期

创建你的工作拷贝:SVN Checkout
更新你的工作拷贝:SVN Update
修改你的工作拷贝:add/delete/rename/copy/move
检验你的修改:check for modifications/ Diff
取消你的修改:revert
合并别人的修改到工作拷贝: (conflict)
提交你的修改:SVN Commit

checkout

功能:从版本库取出一个工作拷贝至本地。
操作:在弹出的对话框中输入版本库URL,本地工作拷贝路径,下载的版本号(默认为版本库当前最新版本),URL的深度可以自己控制。
注意事项:
(1)检出的版本库URL深度只能到目录,即只能检出文件夹,单个文件不能做检出;
(2)本地必须有一空的文件夹用于存放从版本库检出的工作拷贝;

update

功能:将版本库的最新版本合并到工作副本中。
操作:鼠标右击选中目录或文件,在Windows下使用右键菜单中SVN Update即可。
在这里插入图片描述

add

功能:将工作拷贝中新增加的文件,目录或符号链锁定添加到版本库,这些添加的对象会在commit时才真正上传并添加到版本库。只影响工作拷贝,在commit前不改变版本库内容。
操作:在工作拷贝中,使用右键菜单中的添加即可,此时的添加只是预添加。
在这里插入图片描述
注意:
1.添加的对象必须已经存在于当前工作拷贝路径内.若对象在工作拷贝路径外,请先用系统复制命令复制对象至工作拷贝对应路径内。在执行了svn的添加命令后,文件的符号标志由:
在这里插入图片描述
2.如果在提交前改变了主意,可以使用svn revert取消此预定(取消全部)。如果是单个目 录或单个文 件可以选择 Undo Add。
3.对于预增加的文件或目录,在未提交前,若需撤消增加,点击资源管理器中的“Revert”菜单,即可返回修改前的状态。

Delete

功能:删除工作拷贝中的目录或文件
变化:只影响工作拷贝,在commit前不改变版本库内容。
操作:
1、如果被删除的文件还未入版本库,则可以直接使用操作系统的删除操作删除该文件。
2、如果被删除的文件已入版本库,则删除的方法如下:

  1. 选择被删除文件,右键svn菜单执行”delete”操作,然后选择被删除文件的父目录,右键svn菜单执行”SVN Commit”.
  2. 使用操作系统的删除操作删除该文件,然后选择被删除文件的父目录,右键svn菜单执行”SVN Commit”,在变更列表中选择被删除的文件。

说明:
若是文件则工作拷贝中即刻删除,
若是目录,则目录中的文件被删除,文件夹保留,在目录上直观地显示出 来图标(X),
以上都是预删除过程,若需要将这些删除操作更新到版本库,则需要使用提交(Commit)操作。查看删除的文件,可点击资源管理器中的“check for modifications”菜单看变更状态。

Copy/Move

功能:将工作拷贝中需复制/剪切的目录或文件弄到目的文件夹中;
变化:只影响工作拷贝,在commit前不改变版本库内容;
操作:需要复制或移动的目录或文件拖放到目的文件夹中,再鼠标右击选取相应的操作,如下.
在这里插入图片描述

Rename

功能:对工作拷贝中的目录或文件进行重命名;
变化:只影响工作拷贝,在commit前不改变版本库内容;
操作: 右击选中需重命名的文件或目录,选择“rename”菜单,输入新的文件名后,工作拷贝中将出现重命名后的文件或目录,重命名前的文件或目录被删除。所有的操作在commit后方可更新到版本库。
注意:

Rename的过程其实分为两步:(1)add(2)Delete
说明:对工作拷贝中一个目录或文件进行rename完毕,下次提交时,在Commit对话框中,如下,两个状态的文档都要选上
在这里插入图片描述

Conflict

在执行commit操作时,如果发生冲突,就会有以下的界面出现,提 示“resource out of date,by updating”
在这里插入图片描述
解决步骤:
1、点“ok”按钮退出。
2、先执行update
3、然后commit
4、如果修改与update得到的代码不冲突,则自动合并。
注意:
在执行update操作时,如果发生冲突,就会有如下的界面出现,提示”One or more files are in a conflicted state“红色警告。说明出现冲突,说明多人对同一地方进行了修改,此时需要手动进行冲突的解决。
在这里插入图片描述
解决步骤:
1、选择冲突文件-〉”Edit conficts”
在这里插入图片描述

出现merge界面,分为”Theirs”、”Mine”和”Merged”3部分,表示”别人修改 的内容”、
”我修改的内容”和”合并后的结果”3部分。目标是将”别人修改的内容”和”我修改的内容”有取舍地合并起来,形成”合并后的结果”。
合并一般分为4种情况: 1、保留”我的修改”,舍弃”别人的修改”。鼠标右键点击Mine框的相应行,点 击”Use this text
block”。 2、舍弃”我的修改”,保留”别人的修改”。鼠标右键点击Theirs框的相应行,点 击”Use this text
block”。 3、同时保留”我的修改”和”别人的修改”,并将”我的修改” 放在前面。鼠标右键 点击Mine框的相应行,点击”Use
text block from mine before theirs”。
4、同时保留”我的修改”和”别人的修改”,并将”别人的修改”放在前面。鼠标右键 点击Mine框的相应行,点击”Use text block
from theirs before mine”。

2、合并完成,Ctrl+S存盘,退出;
3、选择冲突文件-〉”Resolved”,标记冲突已解决,系统自动删除因冲突而新建的文件;
4、继续进行commit操作;

Revert

功能:取消工作拷贝中的所有修改,回到修改前的状态,即回到Base 版本状态;
变化:只影响工作拷贝,不影响版本库;
操作:右击选种需撤消修改的目录或文件,执行”Revert”。
在这里插入图片描述
说明:
1、如果是工作拷贝的顶级目录,则撤销工作拷贝中的所有更改;
2、如果是工作拷贝中的子目录,则撤销子目录中的所有更改;
3、如果是单个文件,则撤销对单个文件的修改;

Commit

功能:提交修改,将修改从工作拷贝提交到版本库。影响工作拷贝和版本库,在提交后,版本库内容将与本地工作拷贝相同。
操作:选取需提交的文件或目录,点击“svn commit”菜单,选取完毕,若未保存认证的信息,则需要重新输入用户名与密码,系统认证是否有写的权限。
在这里插入图片描述
点击”OK”,进入以下界面,表示提交成功。
在这里插入图片描述
注意:提交的对象必须为相对版本库已做了修改的文件或目录,如预添加,预删除,或已修改的等,对于没有修改的目录或文件将不会进行提交。

查看更新

可查看工作拷贝上的变更,工作拷贝中缺的文件及与版本库中比较缺少的或更改的情况。
操作:右击文件或目录,选取资源管理器中的“check for modifications”,不点击”check repository”,只是与工作拷贝中的BASE版本比较,显示出变更的文件。否则将同时与版本库比较检查库中是否有了新的变动。
在这里插入图片描述

查看差异

1、文件差异比较

1.比较某个文件工作拷贝中的版本与checkout时的版本(即Base)之间的差 异,选取该文 件,点击右键,打开“比较差异”显示比较结果。

2.若需比较两个历史版本,打开版本分支图。选一个版本,按CTRL键再选另外一版本, 点击“比较版本差异”出现如图所示界面的比较结果。

2、比较目录的差异或整个版本的差异

在所在的目录下,点击右键,打开版本分支图。选一个版本,按CTRL键再。选另外一版本,点击“比较版本差异”出现如图所示界面的比较结果。

查看日志

查看某些版本的日志信息或所有版本的日志,默认情况是所有版本的,可点击”ShowRange”显示某些版本的变更日志信息。
在这里插入图片描述

标签

选取需打标签的目录,选取“分支/标记”,则将出现如图所示界面
在这里插入图片描述

### TortoiseSVN 使用教程和操作指南 #### 安装说明 为了使用TortoiseSVN,需先完成软件的安装过程。通过简单的向导界面指导用户逐步完成设置流程,直至安装结束。当安装完成后,在任意文件夹位置点击鼠标右键弹出的上下文菜单中应能看到新增加的TortoiseSVN选项,则表明安装已成功[^2]。 #### 检出项目 检出是指从远程仓库下载最新的代码副本到本地计算机上创建工作拷贝的过程。可以通过右击目标文件夹并选择`SVN Checkout...`命令来启动此功能。在对话框内输入或浏览至相应的URL地址指向要检出的库路径,并指定保存位置以及版本范围等参数后确认执行。 #### 导入项目 对于初次加入版本控制系统的新建工程来说,可能需要将其上传入库以便后续管理维护。这一步骤被称为“导入”。具体做法是在资源管理器里定位待处理的数据集所在处所,接着利用快捷方式调用`Import`指令,随后按照提示填写必要的信息字段如目的URI之类的内容之后提交即可实现数据迁移动作。 #### 提交更改 每当开发者完成了某些修改作业以后都应及时地把这些变动同步回服务器端存储区之中去。此时可以借助于`Commit`按钮来进行这项任务;它允许使用者挑选特定条目作为变更集合的一部分,并附加上描述性的消息记录此次改动的缘由及其影响程度等方面的情况报告给团队成员知晓。 #### 更新操作 随着项目的不断演进发展,其他协作者可能会持续推送新的修订版进来。因此定期拉取最新状态变得尤为重要。为此设计了专门用于刷新当前视图下的所有项使之匹配远端实际情形的功能——也就是常说的`Update`机制。只需简单地选取想要升级的对象再触发对应的操作就能轻松达成目的。 #### 查看日志 历史活动追踪有助于理解过去发生过的事件序列从而更好地规划未来的工作安排。借助内置的日志浏览器工具能够方便快捷地检索过往所有的事务详情列表连同关联附件一并呈现出来供查阅分析之用。通常情况下可通过选中感兴趣的节点然后激活`Show log`链接进入该模式下展开探索之旅。 #### 版本回滚 如果遇到不理想的状况或者错误引入的因素时,有时会希望撤销部分甚至全部最近期的变化回到之前某个稳定的状态上去。这时就轮到了强大的时间旅行特性登场亮相啦!即所谓的撤消/恢复能力让一切成为可能。只要明确了期望返回的目标标签或是日期戳记就可以着手准备实施反悔策略咯! #### 版本控制概述 综上所述,TortoiseSVN提供了一套完整的解决方案覆盖从前端UI交互一直到后台逻辑运算各个环节的需求考量。无论是初学者还是经验丰富的专业人士都能从中受益匪浅找到适合自己的协作开发之道[^1]。 ```bash svn checkout URL --username NAME --password PASSWD svn import PATH URL -m "Initial Import" svn commit -m "Message about changes." svn update svn log svn merge -r HEAD:PREV . ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值