【DevOps】SVN分支操作快速入门
不要问笔者为什么不切换到GIT。
1. 前言
吐槽的话就不多说了,直接进入正题。
本文主要介绍一些SVN进行分支操作时候常见操作,提供一站式解决方案。(这里以TortoiseSVN为SVN客户端工具进行操作)。
2. 基本操作
2.1 创建分支
在被SVN管理的项目文件夹(包含.svn
隐藏文件夹)下右键: TortoiseSVN
> Branch/Tag...
。
选择将要创建的分支在远端SVN仓库的存放地址(该地址在SVN仓库端必须不存在),点击OK完成分支创建。
2.2 切换分支
右键: TortoiseSVN
> Switch...
。
选择将要切换到的分支:
2.3 合并分支
这一步应该算是整个分支操作中的重中之重,也是难点所在。进行分支合并的时候我们一定要确保大脑清晰,明确知道自己在做什么:
- 我现在操作的是哪个分支?
- 我现在需要将哪个分支上的哪些操作合并到当前分支上?
- 当前的合并是否产生了冲突?这些冲突应该怎样解决?
- …
操作:
- 右键:
TortoiseSVN
>Merge...
。
- 一般情况下选择第一个"Merge a range of revisions"。
- 选择将被合并的分支,以及该分支上相应的commit。
- 预检测是否存在冲突,并尝试解决冲突。
- 解决完冲突后进行点击"Merge"按钮进行实际的合并操作。
- 测试通过之后,提交合并结果到远程SVN仓库,合并操作完成。
注意:
- 分支创建是发生在远端SVN服务器的repository中,而merge是合并在开发者本地。
- “合并”的意思不是简单的文件合并,而是“操作合并”。如果有知道redis的AOF持久化的同学,应该比较容易理解。
svn上每个提交版本,都对应一组操作,你可能在本次提交中修改、新增、删除了某些文件,这些操作和这个版本对应,当进行Merge的时候,是将这些操作应用到本地Working copy中,这就是“合并”的本质:将某个版本(或者某个版本范围)的操作应用到本地的working copy!理解这点很重要!(Merge的type为“Merge a range of revisions”时的原理)
3. 题外话
说完了操作,再说一些题外话。
其实以上操作并不难,稍微理解下原理之后整个操作基本就是顺其自然的事情了。但分支管理又是非常难的事情,到底需要建立多少分支?如何保证分支版本之间的同步?出现问题之后如何回滚?如何保证每个分支里的commit是职责单一的以方便合并等等…这些分支操作之外的问题反而是成为推动分支管理的最大难题。
4. Links
- 添加链接描述
- SVN分支/主干Merge操作小记 - 作者写得可谓是相当详细了。
【DevOps】SVN分支操作快速入门相关推荐
- POI3.5 HSSFXSSF Excel 操作快速入门
POI3.5 HSSF&XSSF Excel 操作快速入门 1 本文翻译自 http://poi.apache.org/spreadsheet/quick-guide.html 欢迎交流指正 ...
- XBee XTC/XTend 操作快速入门
(http://www.bitconn.com/form_1/注册后,购买XBee模块,送USB评估底板及相关中文资料) 初次使用SX或XTC模块,最快的上手方式是拿一套XBee SX或XTC的开发套 ...
- Subversion快速入门教程(SVN)
Subversion快速入门教程(SVN vs CVS) 文中提及的Subversion动画教程并不可用,如有任何Subversion相关问题可以一起探讨. Subversion是新一代的版本控制工具 ...
- git快速入门 push/clone/reset/merge/切换分支全都有
本文介绍git快速入门,从安装/创建init / 发布push/版本回退reset / branch分支切换/合并分支merge 这些基本的操作都有涉及,方便新人快速入手,有需要的朋友mark一下.首 ...
- Elastricsearch 索引操作详解(快速入门、索引管理、映射详解、索引别名)
一.快速入门 1. 查看集群的健康状况 http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 ...
- apache2.4.9 开启path_info访问_【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)...
新建项目 打开VS2015,找到菜单项[文件->新建->项目],打开向导对话框: 注意我们的选择项: 运行平台:.NET FrameWork 4.5 项目模板:ASP.NET Web Ap ...
- MongoDB学习(五)使用Java驱动程序3.3操作MongoDB快速入门
[引言] 毕竟现在MongoDB还是出于成长阶段,所以现在网上相关的资料很少,而且大部分还都是针对于MongoDB的老版本的.再加上MongoDB的频繁升级.重大更新等等,导致菜鸟学习的难度增大. 好 ...
- php tp3 操作绑定到类,快速入门 17:操作绑定到类
# 快速入门(十七):操作绑定到类 如果你的应用规模比较大,每个操作方法彼此相对独立,那么就可以尝试下操作绑定到类的功能. ## 定义 系统提供了把每个操作方法定位到一个类的功能,可以让你的开发工作更 ...
- HealthKit开发快速入门教程之HealthKit数据的操作
HealthKit开发快速入门教程之HealthKit数据的操作 数据的表示 在HealthKit中,数据是最核心的元素.通过分析数据,人们可以看到相关的健康信息.例如,通过统计步数数据,人们可以知 ...
- matlab撤销上一步命令_CAD快速入门技巧:CAD软件中撤销操作的方法汇总
在使用浩辰CAD软件画图的过程中都难免会误操作,因此CAD与WORD.EXCEL等其他软件一样,在误操作后可以通过"放弃"来取消刚进行的操作,Windows软件的常规操作也适用于C ...
最新文章
- python对应位置相乘
- nfcwriter写入_NFCWriterX 详细使用教程 iOS iPhone NFC实战教程 更新支持iOS11
- error: undefined reference to 'cv::_OutputArray::_OutputArray(std::__ndk1
- oracle中如何创建表的自增ID(通过序列)
- 计算机英语中motherboard,计算机英语--Motherboard.doc
- cflow——C语言函数调用关系生成器
- dux修改index.php,DUX主题修改首页轮播图为通栏模式
- 求解一元二次方程,包含复数解
- 女子12楼坠下被11楼邻居一把抓住
- 《Python数据分析与挖掘实战》第7章-聚类+绘制雷达图
- flutter检测网络状态
- 【渗透笔记】友情检测朋友公司并拿下shell过程
- 自考《操作系统概论》
- 使用Sentinel LDK(Linux)对程序(*.so文件)加壳
- SAP BPC-通过Input Schedul输入与DM运行Logic计算两种情况下的LEQ/INC科目的正负号问题...
- python是哪种动物_动物的分类
- 存储器块清零c语言版,存储器块清零实验
- 0基础极速入门!深度学习高层API最强官方课程
- 屏幕序列Screen Sequences
- HTML5进阶(二)HBuilder实现软件自动升级