TortoiseSVN 使用

TortoiseSVN (以下简称 SVN)很早就接触了,断断续续的用,但一直都没有太深入的学习和使用。最近的项目需要用到 SVN 做版控制,重新拾起,现学现卖,做个记录。

  • 安装等基础不属于本文范畴,本文仅记录 SVN 的用法;
  • TortoiseSVN 仅适用于 windows 系统;
TortoiseSVN

目录

  • 一、初始化项目
    • 1.1 初始化工程目录
  • 二、创建分支(Branches)并提及修改
  • 三、合并操作(Merge)
  • 四、创建标签(Tags)
  • 五、常见问题

一、初始化项目

安装完成后,右键菜单会多出两个选项,通过 【TortoiseSVN】 项就可以进行更多操作。

TortoiseSVN 右键菜单

右键 - 【TortoiseSVN】 - 【Repo-browser】,打开进入仓库管理界面【Repository 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...】创建分支。

创建分支(Branches)

建立好项目并检出到本地后,我们就可以在本地进行项目的初始化构建了,我们可以往其中添加一些文件作为最初的版本,然后右键-【TortoiseSVN】-【Add...】,最后右键 -【SVN Commit...】提交到 SVN 服务器上的主干代码中,以后的开发就从这个最原始的主干代码开始。

三、合并(Merge)分支(Branches)到主干(Trunk)

SVN 的合并操作咋一听还是很绕的:我们平时讲“合并到主干”,看上去是应该是把分支合并到主干,即 分支→主干,但实际操作中却是反向操作的,即 把来自分支的代码合并到主干。也就是说:合并(Merge)操作是在主干(Trunk)目录上执行的右键操作!!!

右键 - 【TortoiseSVN】-【Merge...】
合并一系列的修改
选择分支目录,合并来自某某分支的修改
保持默认
完成

所以,我们直接从分支上点右键合并是会出错的,所以 GitHub 有一个叫做合并请求(pull requests) 的操作,合并请求在主干trunk(或 master)上操作,合并来自分支的‘合并请求’

四、创建标签(Tags)

创建标签太简单了,直接在主干上点右键,仍然选择【TortoiseSVN】-【Branches/tag...】,但这次选择的保存路径(To path)是 tags 目录。

创建标签

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

electron-builder 项目的 Releases 列表

五、常见问题

5.1 拖拽文件

在 Repository Browser 界面中,我们可以直接使用鼠标进行文件的拖拽操作,不管是拖入还是拖出,但该操作会阻塞住界面,出现 Repository Browser 假死的状态,特别是比较大的文件,尤其严重,不过没关系,耐心等它把文件传完即可。拖拽出的文件不具有版本属性。拖入文件时类似 add 操作!

5.2 仓库地址变更

在磁盘中找到当前项目,直接在项目目录上点击右键,选择【TortoiseSVN】-【Relocate】。

仓库地址变更

在打开的界面中填入新的地址并根据引导一步一步完成迁移即可!

参考资料

  • SVN 中创建Trunk、Branches、Tags 过程 作者:悟澈
  • SVN的标准目录结构:trunk、branches、tags 作者:Tianyu-liu
  • svn分支开发与主干合并(branch & merge) 作者:青鸟天空

你可能感兴趣的:(TortoiseSVN 使用)