VCS-02-关于SVN的了解及使用

欢迎并感谢浏览卢小龙的本篇文章

你好!亲爱的读者,本篇文章将主要记录本人在工作学习中对SVN的认识及实际使用,方便自己的学习历程记录以及复习参考,若有言错之处,请各位给予指点.

1.SVN的基本介绍

Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统,Subversion 在 2000 年由 CollabNet Inc 开发,现在发展成为 Apache 软件基金会的一个项目,同样是一个丰富的开发者和用户社区的一部分。

SVN相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上免费的版本控制服务多基于Subversion。

2.SVN的基础应用

  • repository(源代码库):源代码统一存放的地方
  • Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份
  • Commit(提交):当你已经修改了代码,你就需要Commit到repository
  • Update (更新):当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更

日常开发过程其实就是这样的
(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) -->作出自己的修改并调试成功 --> Commit(大家就可以看到你的修改了) 。

如果两个程序员同时修改了同一个文件呢, SVN 可以合并这两个程序员的改动,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。如果是同一行,SVN 会提示文件 Conflict, 冲突,需要手动确认。

3.SVN的安装

3.1在windows安装SVN

把svn安装目录里的bin目录添加到path路径中,在命令行窗口中输入 svnserve --help 或 --version 来查看安装正常与否。
在这里插入图片描述
若出现入上图显示情况,则说明SVN已安装成功

3.2在CentOS下安装 SVN

大多数 GNU/Linux 发行版系统自带了Subversion ,所以它很有可能已经安装在你的系统上了。可以使用下面命令检查是否安装了。

svn --version

如果 Subversion 客户端没有安装,命令将报告svn命令找不到的错误。

[runoob@centos6 ~]$ svn --version
bash: svn: command not found

可以使用镜像 yum install subversion 命令进行安装。

[runoob@centos6 root]$ su -

密码:

[root@centos6 ~]# yum install subversion

已加载插件:fastestmirror, security
设置安装进程:

Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * epel: mirrors.neusoft.edu.cn
 * extras: mirrors.zju.edu.cn
 * updates: mirrors.aliyun.com

解决依赖关系:

-->

执行事务检查:...

安装成功之后,执行 svn --version 命令。

[root@centos6 ~]# svn --version
svn,版本 1.6.11 (r934486)
   编译于 Aug 17 2015,08:37:43

至此,centos下的SVN安装完成。

4.SVN版本控制

SVN的提交步骤与其他VCS无大致区别,本节主要记述一下SVN的版本回退操作。

当我们想放弃对文件的修改,可以使用 SVN revert 命令。
svn revert 操作将撤销任何文件或目录里的局部更改。
我们对文件 readme 进行修改,查看文件状态。

root@runoob:~/svn/runoob01/trunk# svn status
M       readme

这时我们发现修改错误,要撤销修改,通过 svn revert 文件 readme 回归到未修改状态。

root@runoob:~/svn/runoob01/trunk# svn revert readme 
Reverted 'readme'

再查看状态。

root@runoob:~/svn/runoob01/trunk# svn status 
root@runoob:~/svn/runoob01/trunk# 

进行 revert 操作之后,readme 文件恢复了原始的状态。 revert 操作不单单可以使单个文件恢复原状, 而且可以使整个目录恢复原状。恢复目录用 -R 命令,如下。

svn revert -R trunk

但是,假如我们想恢复一个已经提交的版本怎么办。

为了消除一个旧版本,我们必须撤销旧版本里的所有更改然后提交一个新版本。这种操作叫做 reverse merge。

首先,找到仓库的当前版本,现在是版本 22,我们要撤销回之前的版本,比如版本 21。

svn merge -r 22:21 readme 

5.TortoiseSVN 的使用

TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。

下载地址:https://tortoisesvn.net/downloads.html,页面里有语言包补丁的下载链接。
在这里插入图片描述
进入创建的目录在空白处按下右键后(您可以在 MyWork 目录的 icon 上按,也可进入 MyWork 目录后,在空白的地方按),选择 SVN checkout。
在这里插入图片描述
接着您可以看到如下的画面:
在这里插入图片描述
首先我们要填入的是 repository(版本库)的位置,对于 SVN 来说,repository 的位置都是 URL。版本库 URL 这里填入我们测试的版本仓库地址 svn://10.0.4.17/test。

接着,稍微看一下 Checkout directory(检出至目录),这个字段应该要指向您的指定test目录。

确认后,按下 OK 按钮,您应该可以看到如下的信息窗口。
在这里插入图片描述
之后即可拉取到目标路标下的文件。

当我们要将新添加或修改的文件上传到远程仓库时,要运用到新增档案及目录到 Repository 中 add commit

将新增的文件加入到 SVN 版本控制中,TortoiseSVN 会把准备要加入的档案及目录,勾选需要加入的文件。
在这里插入图片描述
按下 OK 后,您将会看到如下的讯息窗口:
在这里插入图片描述
这个 Add(增加)的动作并未真正的将档案放到 Repository 中。仅仅是告知 SVN 准备要在 Repository 中放入这些档案。 此时的文件状态为:
在这里插入图片描述

这些档案真正的放入到 Repository 中,空白处右键选择 SVN commit(提交) 紧接着,您将会看到如下的窗口出现:

在这里插入图片描述
在这里可以清楚地了解到哪些档案要被 commit 到 repository(版本库)中。同样的,如果您有档案不想在这个时候 commit 到 Repository,您可以取消选取的档案,这样他们就不会被 commit 到 Repository 中。在"信息"文本框中可以写入对本次 commit 的说明。

点击"确认"后完成 commit 动作,然后您可以到 runoob 目录中,确定是否所有的档案 icon 都有如下的绿色勾勾在上面,这样代表您的档案都正确无误的到 repository 中。

在这里插入图片描述

6.结语

在本篇文章中重点讲解了SVN的相关基本操作,运用SVN可以进行代码、文件的版本控制,现阶段由于GIT的功能性更加完善,SVN逐渐退出了代码的版本控制,现多用于部门工作文件的存储,如设计文档、接口文档等,要掌握TortoiseSVN 的基础使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

A请叫我卢老师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值