一、SVN简介与安装
SVN是一种版本控制系统,我们现在使用的TortoiseSVN是一种SVN版本控制的客户端程序。TortoiseSVN客户端安装包可以在公司服务器上找到下载,也可以从官网下载,官方下载地址为:https://tortoisesvn.net/downloads.html,根据自己电脑上的系统类型,选择下载32-bit或者64-bit的安装包即可。双击下载下来的安装程序默认安装即可。

如何检查某台电脑上是否已经安装了SVN客户端了呢?

首先打开电脑的文件资源管理器(可以任意找到一个文件夹双击打开),然后将光标移动到文件夹空白处,右键单击鼠标,查看弹出的右键菜单,如果有SVN相关的菜单项,则说明该机器已经安装过SVN客户端,否则没有安装。

TortoiseSVN版本本地查看_服务器

二、SVN的使用

1.检出(SVN Checkout):检出的作用是把SVN服务器上面已经事先创建好的资源同步下载到本地的某个目录下。举例:比如我们新开了一个项目,由运维人员(任何一个有权限远程到公司服务器的人)事先已经在SVN服务器上面创建好了这个项目的资源目录,假设地址为https://192.168.1.221/svn//demo。参照以下步骤就可以将demo资源目录同步下载到本地:

首先在任意一个文件夹内空白处或者桌面空白处,右键单击鼠标,在弹出的右键菜单中选择菜单项“SVN Checkout”(如果安装的是中文版,菜单项是“SVN检出”)。

TortoiseSVN版本本地查看_服务器_02

然后在弹出的对话框中输入需要现在的资源的服务器地址以及下载到本地的目标地址。

TortoiseSVN版本本地查看_svn_03

注意上图红框处的信息,其中URL of repository指的是资源在服务器上面的地址,Checkout directory指的是你想要将服务器上的资源下载到本地的地址。比如我这里示例中就是将服务器上的demo资源下载到本地的E盘demo文件夹下。如果demo文件夹不存在,点击OK之后SVN客户端会自动在E盘创建一个demo文件夹然后将资源现在到demo文件夹中。注意红框中的省略号标识的按钮点击之后可以快速选择文件目录。

目录信息填写完毕之后,点击OK按钮,客户端程序就会自动将服务器上的demo资源下载到本地E盘的demo文件夹下。此时文件夹demo会出现一个绿色对号这样的图标,标识这个文件夹与SVN服务器上的某个资源关联起来了,并且本地与服务器上某个版本完全一样没有任何改动。

TortoiseSVN版本本地查看_unity_04

2.添加文件(Add):如果本地新增了一些文件需要传到服务器上去,可以使用Add命令+Commit命令将文件传到服务器。还是以demo资源为例,假设我现在已经将服务器上的demo资源下载到了本地E盘的demo文件夹中。然后现在需要将本地新增的txt文件new.txt传到服务器。具体操作如下:

选中需要新增的文件,单击鼠标右键,在弹出的SVN菜单项中选择“Add”菜单项。此时,文件已经被标记为下次提交的时候会作为新增文件一并提交到服务器,但是要注意,Add命令仅仅是对这个本地的文件打了个标记,这个时候服务器上还没有这个文件。所有最终对服务器的改动,都是通过commit(提交)命令完成的。

TortoiseSVN版本本地查看_svn_05

3.提交(Commit):提交的作用,是将本地的资源(理解为是服务器资源在你这台机器上的一个开发副本)的所有更改,都传到服务器上,让服务器上的资源同步为你本地修改过的这个最新的版本。

4.更新(Update):更新的作用,是将本地的资源更新为服务器上最新的版本,因为可能大家同时开发一个项目,服务器上的资源不止你一个人在上传,别人也可能在开发过程中做了一些修改,然后上传了,这时候就可以通过更新命令,将别人上传的版本同步到你本机,保证与别人的开发进度保持一致。

5.删除(Delete):删除的作用是将服务器上的某个资源删除。如果不使用Delete命令而是直接删除文件夹,那么下次提交的时候,会提示资源丢失,如果是选择Delete命令删除,则可以在下次提交的时候将服务器上对应的资源也删除掉。

6.解决冲突(Resolve):冲突产生的原因是多个人同时改动服务器上的同一个资源(即同一个文件)。举例:张三和李四都从服务器上面更新了服务器上的demo资源的版本号为9的那个版本。然后张三在本地修改了demo文件夹下的test.txt文件并上传了,此时服务器上面的test.txt资源变为10版本。然后李四本地对test.txt文件也做了修改,但是没有上传而是直接从服务器更新demo资源,此时李四更新完之后本地会提示test.txt文件有冲突,并且会生成冲突比对文件。

TortoiseSVN版本本地查看_TortoiseSVN版本本地查看_06

这时候就需要解决冲突。解决冲突的办法,选中资源目录(这里示例中是demo文件夹),单击鼠标右键,在弹出的SVN菜单中选择“Resolve”菜单项,会弹出一个对话框列出所有demo文件夹中包含的冲突。

TortoiseSVN版本本地查看_svn_07

选中列表中的冲突项,单击鼠标右键

TortoiseSVN版本本地查看_unity_08

可以看到,这里解决冲突有两种方式:第一种是以服务器上别人上传的版本为准,第二种是以本地自己修改的版本为准。这里就需要两个或者多个开发人员自己协商,到底是以哪个版本为准了,服务器没有办法做出决策。