前言

Subversion(SVN) 是一个开源的版本控制系統, TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端, 适用于 Windows 操作系统。TortoiseSVN 提供了一个用户友好的界面, 使得用户可以方便地访问 Subversion 版本控制系统,本文将简要介绍 TortoiseSVN 的使用。

TortoiseSVN 的使用

安装

下载地址: https://tortoisesvn.net/downloads.html, 页面里有语言包补丁的下载链接。

image.png

这里要注意安装时一定要勾选 command line client tools,这样才能在命令行中使用 svn 命令,以及启动服务端。

创建 SVN 仓库

一般在使用 SVN 时都会有一个远程的服务器,通过服务器的 URL 就可以 Check Out 仓库,这里为了演示方便,我们在本地创建一个 SVN 仓库充当远程服务器:

image.png

这里我们将 RemoteRepo 作为远程仓库,LocalRepo 作为本地仓库。

RemoteRepo 目录下右键,选择 TortoiseSVN -> Create repository here,创建一个 SVN 仓库:

image.png

文件夹下会多出一系列的配置文件。

修改配置文件

上述自动创建的配置文件可用于管理用户以及密码等,这里我们对 conf 文件夹中的文件进行简单的配置:

image.png

首先按照 authz 文件中的提示,配置用户组以及对应的权限

image.png

这里 [/] 代表根目录下所有的资源。

接着在 passwd 文件中配置用户的密码:

image.png

最后在 svnserve.conf 文件中配置用户的访问权限,以及配置文件的路径等:

image.png

启动 SVNserve 服务

RemoteRepo 目录下的 bin 文件夹添加到环境变量中,然后在命令行中输入 svnserve -d -r RepoPath 启动服务,此处 RepoPathRemoteRepo 的绝对路径:

image.png

这样我们就搭建了一个本地的 SVN 服务器,接下来就可以拉取仓库了。

Import 仓库

我们进入 LocalRepo 目录,右键选择 TortoiseSVN -> Import,将本地仓库导入到远程仓库:

image.png

这里的 URL 为 svn://your_ip/RepoName,其中 your_ip 为本地 IP 地址,RepoName 为远程仓库的名称。

image.png

Authentication 界面中输入用户名和密码,点击 OK 即可导入仓库。

Check Out 仓库

LocalRepo 目录下右键,选择 TortoiseSVN -> Check Out,输入远程仓库的 URL,点击 OK 即可拉取仓库:

image.png

这样就建立起了 LocalRepoRemoteRepo 之间的连接。

Commit

心情激动的你在 LocalRepo 目录下新建了一个 Readme.md 文件,并写下著名的 —— Hello World!,然后右键选择 TortoiseSVN -> Commit,将文件提交到远程仓库:

image.png

image.png

完成了第一个提交!

我们回到 RemoteRepo 目录下,右键选择 TortoiseSVN -> Repository Browser,查看仓库的文件:

image.png

发现了来自千年的 Alice 同学的提交记录!

使用 Show log 可以查看更多信息:

image.png

切换用户

既然我们创建的用户组中有两个用户,那么我们也来试一下 Bob 同学的账户:

image.png

在同一台电脑上切换用户需要在 TortoiseSVN -> Settings -> Saved Data 中删除 Authentication Data

随后我们再新建一个文件夹:

image.png

重复上述的登录以及CheckOut等过程,不过这次我们使用 Bob 同学的账户。

我们对 Readme.md 文件进行修改,然后提交:

image.png

同样回到 RemoteRepo 目录下,查看提交记录:

image.png

Update

此时 RemoteRepo 中的 Readme.md 文件已经被 Bob 同学修改过了,因此对于 Alice 同学来说,需要先更新本地仓库,同样右键选择 TortoiseSVN -> Update

image.png

成功更新后,我们可以看到 Readme.md 文件已经被修改。

GiT & SVN & Perforce 的比较

GiT、SVN、Perforce 都是版本控制工具,但是在实际的使用中有着不同的特点:

  1. 架构设计
  • Git: Git是一个分布式版本控制系统。每个用户的本地存储库都是完整的历史记录副本,可以在离线状态下执行大部分操作(如提交、回滚和分支操作)。更适合需要灵活分支管理和频繁合并的项目。

  • SVN: SVN是一个集中式版本控制系统。所有版本历史存储在中央服务器上,用户需要实时与服务器交互(如提交和更新)。

  • Perforce: Perforce 也是一种集中式版本控制系统,但支持细粒度的分支管理和高性能的大型文件操作。专为企业级项目设计,适合处理大型代码库和资源密集型的场景(如游戏开发中的美术资源管理)。

  1. 性能与规模
  • Git:Git 在处理大规模的文件以及二进制文件时的性能较差,因此不适合处理资源密集型的项目。

  • SVN:SVN 虽然对单个文件的大小没有限制,但对于大规模项目的支持有限,且在分支和合并的操作上效率较低。

  • Perforce:Perforce 由于专为企业项目设计,对于大规模项目进行了优化,能够高效处理诸如纹理、模型等资源文件,对于游戏项目的开发非常合适。