SVN介绍及使用总结

一、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之前请做好备份。

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

merlin’s girl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值