TortoiseSVN (以下简称 SVN)很早就接触了,断断续续的用,但一直都没有太深入的学习和使用。最近的项目需要用到 SVN 做版控制,重新拾起,现学现卖,做个记录。
- 安装等基础不属于本文范畴,本文仅记录 SVN 的用法;
- TortoiseSVN 仅适用于 windows 系统;

目录
- 一、初始化项目
- 1.1 初始化工程目录
- 二、创建分支(Branches)并提及修改
- 三、合并操作(Merge)
- 四、创建标签(Tags)
- 五、常见问题
一、初始化项目
安装完成后,右键菜单会多出两个选项,通过 【TortoiseSVN】 项就可以进行更多操作。

右键 - 【TortoiseSVN】 - 【Repo-browser】,打开进入仓库管理界面【Repository Browser】。

在左侧 【svn://*****/】上点右键,选择【Create folder...】创建一个新的工作目录。

在创建的目录上继续点击右键,选择【Checkout...】,将新创建的项目检出到本地。


1.1 初始化工程目录
打开检出的文件夹,在其中新建 branches、tags、trunk 三个目录,分别代表 分支、标签以及主干。
- branches 分支,分支基于主干(Trunk)的代码创建,所有的开发均使用分支目录,最终提交(Commit)到远程分支,再合并(Merge)到主干(Trunk);
- tags 标签,标签常用作版本记录,它可以认为是 GitHub 上的 release 版本;
- trunk 主干,所有的分支(Branches)都会合并(Merge)到主干目录中,然后就可以基于主干代码发布到 tags 中,它可以认为是 GitHub 上的 master 分支。
把目录添加到 svn 中,并提交到远程仓库。


这样就算是建好一个项目了。和 GitHub 类似,我们现在的角色是项目创建者。
二、创建分支(Branches)并提及修改
在主干(Trunk)目录上右键,选择【TortoiseSVN】-【Branches/tag...】创建分支。

建立好项目并检出到本地后,我们就可以在本地进行项目的初始化构建了,我们可以往其中添加一些文件作为最初的版本,然后右键-【TortoiseSVN】-【Add...】,最后右键 -【SVN Commit...】提交到 SVN 服务器上的主干代码中,以后的开发就从这个最原始的主干代码开始。
三、合并(Merge)分支(Branches)到主干(Trunk)
SVN 的合并操作咋一听还是很绕的:我们平时讲“合并到主干”,看上去是应该是把分支合并到主干,即 分支→主干,但实际操作中却是反向操作的,即 把来自分支的代码合并到主干。也就是说:合并(Merge)操作是在主干(Trunk)目录上执行的右键操作!!!





所以,我们直接从分支上点右键合并是会出错的,所以 GitHub 有一个叫做合并请求(pull requests) 的操作,合并请求在主干trunk(或 master)上操作,合并来自分支的‘合并请求’。
四、创建标签(Tags)
创建标签太简单了,直接在主干上点右键,仍然选择【TortoiseSVN】-【Branches/tag...】,但这次选择的保存路径(To path)是 tags 目录。

标签可以理解为一个正式的版本,其中的代码一般为只读状态(这个需要在 SVN 环境所在的服务器上对目录做读写权限设置吧),一般一个大功能完成都会做一个 tag,它可以认为是 GitHub 上的 release 版本。

五、常见问题
5.1 拖拽文件
在 Repository Browser 界面中,我们可以直接使用鼠标进行文件的拖拽操作,不管是拖入还是拖出,但该操作会阻塞住界面,出现 Repository Browser 假死的状态,特别是比较大的文件,尤其严重,不过没关系,耐心等它把文件传完即可。拖拽出的文件不具有版本属性。拖入文件时类似 add 操作!
5.2 仓库地址变更
在磁盘中找到当前项目,直接在项目目录上点击右键,选择【TortoiseSVN】-【Relocate】。

在打开的界面中填入新的地址并根据引导一步一步完成迁移即可!
参考资料
网友评论