当前位置:网站首页>SVN介绍及使用总结
SVN介绍及使用总结
2022-06-25 18:17:00 【xiaomei-Liao】
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之前请做好备份。
边栏推荐
- OSError: Unable to open file (truncated file: eof = 254803968, sblock->base_addr = 0, stored_eof = 2
- Training of long and difficult sentences in postgraduate entrance examination English Day82
- Android Internet of things application development (smart Park) - picture preview interface
- Training of long and difficult sentences in postgraduate entrance examination day90
- 华为云SRE确定性运维专刊(第一期)
- 哈希竞猜游戏系统开发如何开发?哈希竞猜游戏系统开发应用详情案例及源码
- 06 local method interface
- .NET Worker Service 添加 Serilog 日志记录
- 【深入理解TcaplusDB技术】单据受理之创建业务指南
- C generic class case
猜你喜欢
Handling method of qstring containing "\u0000" in QT
Article 7: there is no code prompt in clion,,,
【深入理解TcaplusDB技术】单据受理之建表审批
【深入理解TcaplusDB技术】TcaplusDB业务数据备份
Uncover ges super large scale graph computing engine hyg: Graph Segmentation
快手616战报首发,次抛精华引新浪潮,快品牌跃入热榜top3
跨境电商亚马逊、eBay、Shopee、Lazada、速卖通、沃尔玛、阿里国际等平台,怎样进行自养号测评更安全?
General message publishing and subscription in observer mode
Kwai 616 war report was launched, and the essence was thrown away for the second time to lead the new wave. Fast brand jumped to the top 3 of the hot list
How can the self-supporting number evaluation be safer for cross-border e-commerce platforms such as Amazon, eBay, shopee, lazada, express, Wal Mart and Alibaba international?
随机推荐
【深入理解TcaplusDB技术】TcaplusDB新增机型
What is the ranking of the top ten securities companies? Is it safe to open a mobile account?
[deeply understand tcapulusdb technology] create a game zone
【深入理解TcaplusDB技术】 Tmonitor模块架构
How to sort massive data? How to process data between memory and hard disk?
Article 7: there is no code prompt in clion,,,
RMAN备份数据库_跳过脱机,只读和不可访问的文件
Handling method of qstring containing "\u0000" in QT
Dell r530 built in hot spare status change description
JSP页面运行却显示源码
Dell R530内置热备盘状态变化说明
Huawei cloud SRE deterministic operation and maintenance special issue (the first issue)
【深入理解TcaplusDB技术】单据受理之表管理
Article 6:clion:toolchains are not configured configure disable profile
RMAN backup database_ Manage backup window
Interrupt operation: abortcontroller learning notes
connect to address IP: No route to host
Redis command string
LeetCode 322. Change exchange & dynamic planning
connect to address IP: No route to host