【DevOps】SVN分支操作快速入门

你的名字 2022-12-13 04:36 294阅读 0赞

不要问笔者为什么不切换到GIT。

1. 前言

吐槽的话就不多说了,直接进入正题。

本文主要介绍一些SVN进行分支操作时候常见操作,提供一站式解决方案。(这里以TortoiseSVN为SVN客户端工具进行操作)。

2. 基本操作

2.1 创建分支

在被SVN管理的项目文件夹(包含.svn隐藏文件夹)下右键: TortoiseSVN > Branch/Tag...
创建分支
选择将要创建的分支在远端SVN仓库的存放地址(该地址在SVN仓库端必须不存在),点击OK完成分支创建。
选择分支的存放位置

2.2 切换分支

右键: TortoiseSVN > Switch...
切换分支
选择将要切换到的分支:
选择将要切换到的分支

2.3 合并分支

这一步应该算是整个分支操作中的重中之重,也是难点所在。进行分支合并的时候我们一定要确保大脑清晰,明确知道自己在做什么:

  1. 我现在操作的是哪个分支?
  2. 我现在需要将哪个分支上的哪些操作合并到当前分支上?
  3. 当前的合并是否产生了冲突?这些冲突应该怎样解决?

操作:

  1. 右键: TortoiseSVN > Merge...
    在这里插入图片描述
  2. 一般情况下选择第一个”Merge a range of revisions”。
    在这里插入图片描述
  3. 选择将被合并的分支,以及该分支上相应的commit。
    在这里插入图片描述
  4. 预检测是否存在冲突,并尝试解决冲突。
    在这里插入图片描述
  5. 解决完冲突后进行点击”Merge”按钮进行实际的合并操作。
  6. 测试通过之后,提交合并结果到远程SVN仓库,合并操作完成。

注意:

  1. 分支创建是发生在远端SVN服务器的repository中,而merge是合并在开发者本地。
  2. “合并”的意思不是简单的文件合并,而是“操作合并”。如果有知道redis的AOF持久化的同学,应该比较容易理解。 
    svn上每个提交版本,都对应一组操作,你可能在本次提交中修改、新增、删除了某些文件,这些操作和这个版本对应,当进行Merge的时候,是将这些操作应用到本地Working copy中,这就是“合并”的本质:将某个版本(或者某个版本范围)的操作应用到本地的working copy!理解这点很重要!(Merge的type为“Merge a range of revisions”时的原理)

3. 题外话

说完了操作,再说一些题外话。

其实以上操作并不难,稍微理解下原理之后整个操作基本就是顺其自然的事情了。但分支管理又是非常难的事情,到底需要建立多少分支?如何保证分支版本之间的同步?出现问题之后如何回滚?如何保证每个分支里的commit是职责单一的以方便合并等等…这些分支操作之外的问题反而是成为推动分支管理的最大难题。

  1. 添加链接描述
  2. SVN分支/主干Merge操作小记 - 作者写得可谓是相当详细了。

发表评论

表情:
评论列表 (有 0 条评论,294人围观)

还没有评论,来说两句吧...

相关阅读