目录
一. SVN 是什么
SVN 全名为 SubVersion,即版本控制系统,是一个跨平台的文件管理软件,支持大多数常见的操作系统。
作为一个开源的版本控制系统,SVN 能够管理随时间不断变化的数据。这些数据放置在一个中央资料档案库中,即我们常说的 Repository。用户在客户端通过服务端 URL 和给定的账号密码访问该档案库,并能够在给定的权限范围内进行操作。这个档案库看起来好像是一个普通的文件服务器,但它会记住每一次文件的变动,从而可以将档案回退到旧版本。
常常有人将 SVN 与 Gitee 作比较,笔者认为 SVN 更适于小规模开发与文件控制,Git 适用于中大型团队协作开发。正因如此,SVN 比 Gitee 更容易上手,Gitee 的指令较为复杂,对新手很是不友好。
二. SVN 的安装
SVN的安装分为2部分,一部分是服务端安装,另一部分为客户端安装。服务端和客户端软件的内核使用的都是 Subversion,为 Subversion 服务。
- 客户端软件: TortoiseSVN,可以很方便地向服务器提交代码、从服务器下载代码以及查看自己以前提交的代码;
- 服务端软件: VisualSVN Server,包括 apache、Subversion 和 WMI,很多配置都已配置完成,比较容易上手;
- SVN 的源码库:Subversion,是一个集成了客户端和服务端的内核,相关配置需要手动进行;
只有企业版 VisualSVN Server 是收费的,TortoiseSVN 和标准版 VisualSVN Server 都是免费的。一般情况下,我们只需要安装客户端 SVN 即可,因为服务端是由企业运维来维护的,我们只需要开通一个账号即可访问服务端档案。本文只介绍客户端的安装与使用,更多可参考 SVN安装及使用教程图文详解。
1. 下载 TortoiseSVN
去官网下载 TortoiseSVN,找到页面底部 TortoiseSVN 下载,选择适用自己电脑位数的 TortoiseSVN 客户端下载:

2. 安装
双击安装包打开安装界面:

连续3次点击 next 后进入准备安装页面,点击 install,安装完成后点击 finish 即可。安装完需要重启电脑以将其应用于整个电脑。
3. 使用
安装成功并重启后,并没有找到SVN的快捷方式,通过搜索栏打开 TortoiseSVN:

会出现弹窗:

这是因为 TortoiseSVN 是一个类似于插件扩展的应用,使用方式并不是双击快捷方式打开 UI 界面。
三. SVN 的使用
1. SVN Checkout
本地安装好 TortoiseSVN 后,第一次与远程SVN服务器建立连接时需要SVN Checkout。将服务器端文档迁出需要知道 SVN服务端地址,还需要仓库所有者给定客户端用户名 和 密码才能够访问。
(1)建立一个空文件夹,用来存放从服务器拉取下来的文件;
(2)进入新创建的文件夹,右击,选择【TortoiseSVN】,点击【Checkout】;

(3)输入 SVN URL,其余不作改动,默认本地地址为当前文件夹,服务器仓库版本为最新版。点击“OK”;

(4)第一次登录需要输入用户名和密码,由远程服务器所有者给出。输入用户名和密码,点击“OK”:

可以看到远程文件不断下载到本地:

下载需要花一些时间,完成后点击“OK”即可。
(5)如果此前登陆过 SVN 账号,现在想要更换账号,可以右击选择【TortoiseSVN】—>【settings】—>【Saved Data】—>【Authentication data】清除认证数据:


如果清除完毕后还是无法登陆新账号,则需要进入本地 “C:\Users\用户名\AppData\Roaming\Subversion\auth” 文件夹下,删除所有文件夹:

删除后原账号所有信息都被清空,再次 Checkout 时需要重新登录账号密码。
2. SVN Update
由于是协同工作,多个用户共享服务器端文档,因此有可能出现其他用户更新了文档的情况。为了使本地文档与服务器端保持一致,可以更新指定文件夹。这个文件夹可以是整个 SVN 工作区,也可以是某一个文件夹。
具体操作方法是:进入指定文件夹,右击,选择 “TortoiseSVN”,点击 “Updata” 即可:

出现如下页面表示更新完成:

3. SVN Commit
当用户在本机对从服务器迁出的文档进行修改后,需要上传至服务器以使其他用户可以同步查看。当文件修改后 SVN 会对本地文件进行标识,图标状态主要有以下几种:
想要上传修改过的文件时选择 “TortoiseSVN” —> “Updata” 即可。注意勾选想要提交更改的文件。
4. SVN Revert
当本地的修改还未提交并且想要丢弃时,可以撤销本地的操作:进入指定文件夹,右击,选择 “TortoiseSVN”,点击 “Revert” 即可:

四. SVN 常见报错
1. SVN 未响应
以前每次使用 SVN 都是在学校连接的校园网,有一次在家想要 Update 文件夹结果一直无响应,最后卡死:

【错误原因】:尝试了网上诸多方法:修改 https 为 http 协议、修改 IP 地址、修改设置、删除重建、重装 SVN……都无济于事。后来发现想要访问的 URL 所在主机的 IP 地址是 172.16.0.0/12 下的地址,属于专用地址,需要在内网下才可以访问。
【解决办法】:接入 SVN 服务器所在的内网或者接入相应的 VPN。
2. 目标计算机积极拒绝
Checkout 时被目标计算机拒绝:

【错误原因】:可能是账号权限被取消或者目录被更改;
【解决办法】:先清除本地账号和数据缓存,再重新登录。清除方法见 三.1.(5) 。
(后面遇到问题了再更)