不要问笔者为什么不切换到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是职责单一的以方便合并等等…这些分支操作之外的问题反而是成为推动分支管理的最大难题。

4. Links

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

【DevOps】SVN分支操作快速入门相关推荐

  1. POI3.5 HSSFXSSF Excel 操作快速入门

    POI3.5 HSSF&XSSF Excel  操作快速入门 1 本文翻译自 http://poi.apache.org/spreadsheet/quick-guide.html 欢迎交流指正 ...

  2. XBee XTC/XTend 操作快速入门

    (http://www.bitconn.com/form_1/注册后,购买XBee模块,送USB评估底板及相关中文资料) 初次使用SX或XTC模块,最快的上手方式是拿一套XBee SX或XTC的开发套 ...

  3. Subversion快速入门教程(SVN)

    Subversion快速入门教程(SVN vs CVS) 文中提及的Subversion动画教程并不可用,如有任何Subversion相关问题可以一起探讨. Subversion是新一代的版本控制工具 ...

  4. git快速入门 push/clone/reset/merge/切换分支全都有

    本文介绍git快速入门,从安装/创建init / 发布push/版本回退reset / branch分支切换/合并分支merge 这些基本的操作都有涉及,方便新人快速入手,有需要的朋友mark一下.首 ...

  5. Elastricsearch 索引操作详解(快速入门、索引管理、映射详解、索引别名)

    一.快速入门 1. 查看集群的健康状况 http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 ...

  6. apache2.4.9 开启path_info访问_【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)...

    新建项目 打开VS2015,找到菜单项[文件->新建->项目],打开向导对话框: 注意我们的选择项: 运行平台:.NET FrameWork 4.5 项目模板:ASP.NET Web Ap ...

  7. MongoDB学习(五)使用Java驱动程序3.3操作MongoDB快速入门

    [引言] 毕竟现在MongoDB还是出于成长阶段,所以现在网上相关的资料很少,而且大部分还都是针对于MongoDB的老版本的.再加上MongoDB的频繁升级.重大更新等等,导致菜鸟学习的难度增大. 好 ...

  8. php tp3 操作绑定到类,快速入门 17:操作绑定到类

    # 快速入门(十七):操作绑定到类 如果你的应用规模比较大,每个操作方法彼此相对独立,那么就可以尝试下操作绑定到类的功能. ## 定义 系统提供了把每个操作方法定位到一个类的功能,可以让你的开发工作更 ...

  9. ​HealthKit开发快速入门教程之HealthKit数据的操作

    ​HealthKit开发快速入门教程之HealthKit数据的操作 数据的表示 在HealthKit中,数据是最核心的元素.通过分析数据,人们可以看到相关的健康信息.例如,通过统计步数数据,人们可以知 ...

  10. matlab撤销上一步命令_CAD快速入门技巧:CAD软件中撤销操作的方法汇总

    在使用浩辰CAD软件画图的过程中都难免会误操作,因此CAD与WORD.EXCEL等其他软件一样,在误操作后可以通过"放弃"来取消刚进行的操作,Windows软件的常规操作也适用于C ...

最新文章

  1. python对应位置相乘
  2. nfcwriter写入_NFCWriterX 详细使用教程 iOS iPhone NFC实战教程 更新支持iOS11
  3. error: undefined reference to 'cv::_OutputArray::_OutputArray(std::__ndk1
  4. oracle中如何创建表的自增ID(通过序列)
  5. 计算机英语中motherboard,计算机英语--Motherboard.doc
  6. cflow——C语言函数调用关系生成器
  7. dux修改index.php,DUX主题修改首页轮播图为通栏模式
  8. 求解一元二次方程,包含复数解
  9. 女子12楼坠下被11楼邻居一把抓住
  10. 《Python数据分析与挖掘实战》第7章-聚类+绘制雷达图
  11. flutter检测网络状态
  12. 【渗透笔记】友情检测朋友公司并拿下shell过程
  13. 自考《操作系统概论》
  14. 使用Sentinel LDK(Linux)对程序(*.so文件)加壳
  15. SAP BPC-通过Input Schedul输入与DM运行Logic计算两种情况下的LEQ/INC科目的正负号问题...
  16. python是哪种动物_动物的分类
  17. 存储器块清零c语言版,存储器块清零实验
  18. 0基础极速入门!深度学习高层API最强官方课程
  19. 屏幕序列Screen Sequences
  20. HTML5进阶(二)HBuilder实现软件自动升级

热门文章

  1. 挥泪推荐6款非常非常非常实用的软件!
  2. H5 video 播放器demo代码
  3. Debian sequeeze编译coreavc 2.0+mplayer
  4. zbar扫描二维码,条维码
  5. 不容错过的5款黑科技软件,建议收藏转发
  6. gitlab使用SSH无法下载
  7. 安装虚拟光驱Daemon Tool 安装失败
  8. Drools规则引擎入门小demo
  9. Speed/accuracy trade-offs for modern convolutional object detectors
  10. iOS入门-公司通讯录项目(教你一步步完成一个公司通讯录)