TortoiseSVN 简单入门
前言
Subversion(SVN) 是一个开源的版本控制系統, TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端, 适用于 Windows 操作系统。TortoiseSVN 提供了一个用户友好的界面, 使得用户可以方便地访问 Subversion 版本控制系统,本文将简要介绍 TortoiseSVN 的使用。
TortoiseSVN 的使用
安装
下载地址: https://tortoisesvn.net/downloads.html, 页面里有语言包补丁的下载链接。
这里要注意安装时一定要勾选 command line client tools
,这样才能在命令行中使用 svn 命令,以及启动服务端。
创建 SVN 仓库
一般在使用 SVN 时都会有一个远程的服务器,通过服务器的 URL 就可以 Check Out 仓库,这里为了演示方便,我们在本地创建一个 SVN 仓库充当远程服务器:
这里我们将 RemoteRepo
作为远程仓库,LocalRepo
作为本地仓库。
在 RemoteRepo
目录下右键,选择 TortoiseSVN
-> Create repository here
,创建一个 SVN 仓库:
文件夹下会多出一系列的配置文件。
修改配置文件
上述自动创建的配置文件可用于管理用户以及密码等,这里我们对 conf
文件夹中的文件进行简单的配置:
首先按照 authz
文件中的提示,配置用户组以及对应的权限
这里 [/] 代表根目录下所有的资源。
接着在 passwd
文件中配置用户的密码:
最后在 svnserve.conf
文件中配置用户的访问权限,以及配置文件的路径等:
启动 SVNserve 服务
将 RemoteRepo
目录下的 bin
文件夹添加到环境变量中,然后在命令行中输入 svnserve -d -r RepoPath
启动服务,此处 RepoPath
为 RemoteRepo
的绝对路径:
这样我们就搭建了一个本地的 SVN 服务器,接下来就可以拉取仓库了。
Import 仓库
我们进入 LocalRepo
目录,右键选择 TortoiseSVN
-> Import
,将本地仓库导入到远程仓库:
这里的 URL 为 svn://your_ip/RepoName
,其中 your_ip
为本地 IP 地址,RepoName
为远程仓库的名称。
在 Authentication
界面中输入用户名和密码,点击 OK
即可导入仓库。
Check Out 仓库
在 LocalRepo
目录下右键,选择 TortoiseSVN
-> Check Out
,输入远程仓库的 URL,点击 OK
即可拉取仓库:
这样就建立起了 LocalRepo
和 RemoteRepo
之间的连接。
Commit
心情激动的你在 LocalRepo
目录下新建了一个 Readme.md
文件,并写下著名的 —— Hello World!
,然后右键选择 TortoiseSVN
-> Commit
,将文件提交到远程仓库:
完成了第一个提交!
我们回到 RemoteRepo
目录下,右键选择 TortoiseSVN
-> Repository Browser
,查看仓库的文件:
发现了来自千年的 Alice
同学的提交记录!
使用 Show log
可以查看更多信息:
切换用户
既然我们创建的用户组中有两个用户,那么我们也来试一下 Bob
同学的账户:
在同一台电脑上切换用户需要在 TortoiseSVN
-> Settings
-> Saved Data
中删除 Authentication Data
。
随后我们再新建一个文件夹:
重复上述的登录以及CheckOut等过程,不过这次我们使用 Bob
同学的账户。
我们对 Readme.md
文件进行修改,然后提交:
同样回到 RemoteRepo
目录下,查看提交记录:
Update
此时 RemoteRepo
中的 Readme.md
文件已经被 Bob
同学修改过了,因此对于 Alice
同学来说,需要先更新本地仓库,同样右键选择 TortoiseSVN
-> Update
:
成功更新后,我们可以看到 Readme.md
文件已经被修改。
GiT & SVN & Perforce 的比较
GiT、SVN、Perforce 都是版本控制工具,但是在实际的使用中有着不同的特点:
- 架构设计
-
Git: Git是一个分布式版本控制系统。每个用户的本地存储库都是完整的历史记录副本,可以在离线状态下执行大部分操作(如提交、回滚和分支操作)。更适合需要灵活分支管理和频繁合并的项目。
-
SVN: SVN是一个集中式版本控制系统。所有版本历史存储在中央服务器上,用户需要实时与服务器交互(如提交和更新)。
-
Perforce: Perforce 也是一种集中式版本控制系统,但支持细粒度的分支管理和高性能的大型文件操作。专为企业级项目设计,适合处理大型代码库和资源密集型的场景(如游戏开发中的美术资源管理)。
- 性能与规模
-
Git:Git 在处理大规模的文件以及二进制文件时的性能较差,因此不适合处理资源密集型的项目。
-
SVN:SVN 虽然对单个文件的大小没有限制,但对于大规模项目的支持有限,且在分支和合并的操作上效率较低。
-
Perforce:Perforce 由于专为企业项目设计,对于大规模项目进行了优化,能够高效处理诸如纹理、模型等资源文件,对于游戏项目的开发非常合适。