SVN分支和合并

实例讲解SVN分支和合并问题 本节向大家简单描述一下SVN分支和合并方面的知识,在学习SVN的过程中SVN分支和合并时经常遇到的问题,在这里和大家分享一下,希望本文对大家有用。 关于主线同SVN分支合并的概念及如何使用的误区此问题是在netbuddy的问题上研究而成,走出误区的过程中得到了pcplayer指 阅读详情
分支的基本概念就正如它的名字,开发的一条线独立于另一条线,如果回顾历史,可以发现两条线分享共同的历史,一个分支总是从一个备份开始的,从那里开始,发展自己独有的历史(如下图所示)



⑴创建分支
假设目前我们版本库中的项目的布局如下图:



如图所示,我们的项目放在了trunk(主线)目录,另外还有branch(分支)和tags(标签)目录,这样的布局是为了更清晰的区别主线、分支和标签三者的位置。
subversion对分支和标签是通过复制一份最新的版本库的快照来实现的。

开始创建分支:
在我们CheckOut的主线目录(trunk)上,右键点击然后选择“Branch/tag…”



在弹出的窗口中,将To Url 指向branch目录并输入分支的具体目录名,这里是mybranch1.0,我们即将创建的分支便存放于此处,点击OK。



Update一下本地的branch目录,你就可以看到你刚刚创建的分支“mybranch1.0”,这样一来我们的分支就创建完成了。




创建分支的最大的目的就是跟主线进行并行开发的时候不影响主线的开发。
因为你在分支上所做的提交都只存于分支上,主线上的Update是看不到分支的修改的。如下图所示,trunk只能看到r344的版本,并看不到r343的版本。



(什么时候应该使用分支呢?例如你接到了一个任务,完成这个任务需要三四个人的合作,你们之间需要共享资源,那们就可以创建一个专为这次任务的分支,参与此次任务的人员则在分支上做开发,等完成之后再合并到主线上,才不会出现将实现了一半的不完成功能也提交到主线上,影响主线的正常工作。又或者自己需要一个较长的开发周期来完成任务,这么长的时间内如果一直没有将资源进行提交,万一丢失了就前功尽弃了。当然分支不是只用于此类情况,还有其它很多种情况也能使用分支来达到目的。)
使用分支需要注意,由于长期的独立开发,可能会在合并回主线时出现较多的冲突。所以在支线上开发间期如果发现主干有更新,而且这个更新有可能将来跟你产生冲突,那你可以先将主线的内容合并到分支上。已免等到做了大量修改再来更新。(其实此过程跟分支合并到主线上是一样的操作,只是目的地不同。)

例如我们在主线上的版本为3,我们如何将此版本的信息合并到分支上呢?


在分支的根目录上右键点击,选择“TortoiseSVNMerge…”。




在这里我们必需先弄明白一个合并背后的关健概念
合并的过程中发生的所有事:首先两个版本库树的比较,然后将区别应用到本地拷贝.
这个命令是包括三个参数的:
1. 初始的版本树 2.最终的版本树 3一个接收区别的工作拷贝。
弄明白这些概念之后我们继续往下操作。
在弹出的窗口中,选择主线目录和其版本号(初始的版本树),再选择主线目录和最新的版本号(最终的版本树),这里也可以是某一个版本号但应该比初始的版本树的版本号要高,接收区默认为你右键所指的目录,这里是mybranch1.0。

在合并之前我们可以通过点击“Unified diff”,查看两版本树之间所有文件的内容的变化,“diff”显示出有发生变化的文件列表,“dry run”能显示真正合并时的状态信息,但并没有做任何的合并操作。
我们点击“Merge”。



在点击“Merge”,合并后的文件(即对分支上的文件补上了主线上修改的内容),如无冲突则可以在分支上像其它文件一样使用了,如果合并后的内容不满意,可以通过撤销来取消这次的合并操作,前提是未对合并后的文件做提交操作。

分支合并到主线跟从主线上合并内容到分支上类似
不同的是
1、开始的版本库是分支创建的版本
2、结束的版本库是完成所以开发工作之后的版本

3、应用的目的是主线目录





linux版


尽管svn没有作强制要求,但是一般svn版本库目录建议创建trunk、branches和tags三个目录。 在实际操作时,trunk主干版本要时刻保持干净,即随时可以基于这个版本进行修改并将应用部署上线。branches是分支目录,存放并行开发的项目代码,因为分支是主干的廉价拷贝(相当只是提交了一次主干版本,增加了一个版本号,并没有取出版本库作镜像拷贝),所以你可以放心建立很多分支版本。不过Subversion不支持跨版本库的拷贝,当使用svn copy时你只能在同一个版本库内操作。tags目录存放trunk某个的快照,比如说release-1.0即trunk处于1.0版本时的快照。

使用svn来作团队的代码管理,那么分支和合并将是非常常用的操作。下面是一个简单的示例。

1. 创建分支。这里假设你要负责一个叫theme的项目,分支号1.7.2。

1
2
3
#这里的localhost是svn服务器地址
svn copy -m "1.7.2 - theme" svn: //localhost/www/trunk svn: //localhost/www/branches/branch1 .7.2-theme
svn co svn: //localhost/www/branches/branch1 .7.2-theme

2. 从trunk中merge到分支。忙了一个星期终于开发完了,但是开发期间trunk版本有过改动,部署上线前你需要合并trunk的代码。

1
2
3
4
#branch1.7.2-theme是分支目录,注意不可以进到分支子目录
cd branch1.7.2-theme
#前面的12972是开分支之前trunk的版本号,后面的12991是merge时trunk的版本号
svn merge -r 12972:12991 svn: //localhost/www/trunk

如果有冲突选择p(postpone),merge完了之后使用svn st|grep ^C查看冲突文件,然后比对修改冲突文件。解决冲突后再check in ,信息写上执行的merge操作。

1
svn ci -m 'svn merge -r 12972:12991svn://localhost/www/trunk'

3. 从分支merge到trunk。上线测试完毕,你很幸运,一切都如预期正常,这时就要将分支回归trunk,将trunk更新到最新。

1
2
3
4
5
#先从trunk checkout一份新鲜的代码,然后cd到该版本目录下
svn co svn: //localhost/www/trunk
cd trunk
#12973是分支开始的版本号,13006是分支结束的版本号
svn merge -r 12973:13006 svn: //localhost/www/branches/branch1 .7.2-theme

如步骤2一样解决冲突,解决冲突后再check in,信息写上执行的merge操作。

1
svn ci -m "svn merge -r 12973:13006svn://localhost/www/branches/branch1.7.2-theme"





SVN开分支和合并分支 ​ 主干开分支 1、选择需要开分支的项目,并选择 Branch/Tag 2、填写分支基本信息: 选择/填写分支版本存储路径、填写分支记录的log信息、选择分支位于主干上的版本 3、确定后,再更新,就可以有分支的项目版本出来了。 分支合并主干 1、选择分支项目,Merge 2、选择合并的版本 从主干选择版本范围、选择合并的版本、先测试合并版本、确定没问题后点Merge进行合并 ​ ... 阅读详情

相关推荐

谷歌(Google) Pixel 8/9 Pro(xl)如何获取 root 权限

谷歌(Google)Pixel8/9Pro(xl)等系列手机破解后,会在你的init_boot.img同路径生成一个magisk_patched.img,把这个文件拷贝到adb目录下,稍后还得把它刷回手机,这样手机才能获得Root权限,因为安卓14、15以后的内核结构调整,和Pixel7及以下的6、5、4、3、2等系列手机破解稍微不一致。因为ROOT权限的获取,需要使用ROM中的内核文件,个人强烈建议在官网下载ROM,直接刷最新版,其他地方的ROM如果没有校验码,请自行斟酌是否使用。

bugsycrack的博客 3486

关于SVN版本分支合并的知识学习

分支的合并类型 合并的工作是把主干或者分支上合并范围内的所有改动列出,并对比当前工作副本的内容,由合并者手工修改冲突,然后提交到服务器的相应目录里。如果当前工作副本是主干,则合并的范围是分支上的改动,如果工作副本是分支的,则合并范围是主干上的改动,并且一定要注意,合并的起始位置URL一定要和当前的工作副本的URL是相同的。 一、合并一个范围的版本 此类型应用最为广泛,主要是把分支中的修改合并...

329

5个免费股票数据API实测对比:从AkShare到BaoStock,哪个最适合你的AI量化项目?

本文深度评测了AkShare、BaoStock、yfinance、Alpha Vantage和EOD Historical Data这五个免费股票数据API,从数据质量、覆盖范围、更新频率、稳定性及易用性进行对比。针对AI量化项目,文章提供了详细的选型策略,帮助开发者根据项目阶段与需求,精准选择最适合的数据源,并强调了多源验证与数据清洗的重要性。

weixin_29290947的博客 5086

SVN创建分支,分支合并,切换分支。通俗易懂

branches(分支):一般把那些需要打分支,有可能会修改的项目代码,打分支到此目录,这个分支开发可以和主分支开发同时进行,并行开发,branch分支通常用于修复bug使用。5.1、接下来写代码就在各自的分支上完成,比如现在在truck分支上开发完了,准备上线,这是在truck文件夹上开个线上版本,操作:TortoiseSVN -> 分支/标记。线上版本修复了,但是主干版本还没修复,更新也没同步过来,这时可以把线上版本合并到主干版本上,右键demo001-online文件夹 , 点击显示日志。

weixin_48420104的博客 2万+

用Spirent Test Center测试交换机Head of Line(HOL)Blocking

测试目的:设备执行拥塞控制,使非阻塞端口不受阻塞端口影响 预设条件:在RFC2889里按以下步骤设置,端口1和端口3同时向端口4发送数据包,端口1向端口2发送数据包 测试步骤:运行设置好的RFC2889 测试结果:所有frame size都显示没有Head of Line(HOL),即非阻塞端口不受阻塞端口所影响 ...

Yuna_的博客 1357

从网格划分到结果解读:一次完整的子弹侵彻LS-DYNA仿真避坑指南

本文详细解析了子弹侵彻LS-DYNA仿真中的关键技术与避坑指南,涵盖网格优化、对称边界条件设置、沙漏控制参数调整及结果可信度验证。通过HyperMesh网格划分和LS-DYNA高级参数配置,帮助工程师提升仿真精度与效率,确保计算结果物理可信。

weixin_29816689的博客 406

SVN中创建和使用分支?

通过以上步骤,你可以有效地在 SVN 中创建和使用分支,进行开发工作,并最终将分支的更改合并到主干。理解这些步骤和命令可以帮助你更好地管理 SVN 仓库中的分支操作,确保项目的开发流程更加高效和有序。

qq_33240556的博客 2771

从频谱入手搞定ESD:手把手教你用示波器和频谱仪分析静电干扰(以Type-C接口为例)

本文详细介绍了如何利用示波器和频谱仪分析Type-C接口的ESD干扰问题。通过频谱特性分析、耦合路径诊断和实战测试,提供了一套完整的ESD防护方案,包括三级防护设计和器件选型建议,帮助工程师有效解决静电放电导致的系统故障。

weixin_42662293的博客 344

SVN合并(merge)的使用

分支用来维护独立的开发支线,在一些阶段,你可能需要将分支上的修改合并到最新版本,或者将最新版本的修改合并到分支。         此操作十分重要,在团队开发中,如果你是SVN 的维护者此环节可以说是必不可少,因为团队开发中如果使用了分支,那样合并分支到主干、或者分支合并分支的操作是必须的。         如果不使用分支,直接在主干上修改的话,主干版本可能会变得十分混乱。维护难

大鹏 5698

Neo4j桌面版导入CVS文件

我们的relation.csv是这样的。

m0_53573725的博客 817

STM32 使用SYN6288语音模块

本篇文章带大家学习一下SYN6288语音模块,这个模块可以用于车载设备,语音电子书等众多产品当中,而且这个模块支持多种编码格式,GB2312,GBK等字符编码格式。SYN6288语音合成模块是一种语音合成设备,其可实现文字转语音功能,将输入的文字信息通过内部的处理和合成,输出相对应的语音信息。SYN6288模块具有语音合成质量高、输出音质好、使用方便等特点,因此广泛应用于语音播报、语音提示、语音识别、智能家居、智能家电、安防监控等领域。支持多语言:包括中文、英文、日文、韩文等多种语言。

m0_49476241的博客 2万+

SVN(TortoiseSVN)详细教程(四)--创建分支合并相互操作

一. 背景: 1. 项目中为何要创建分支,及合并?       比如我现在项目所有的文件放在主干上(trunk)中,由于需求的变更,需要增加新的需求,但是我们主干上还要继续往下开发,在此我们可以新建一个分支,来做增加新的需求那一块,主干上继续开发,等分支上代码没有问题的时候,再合并到主干上来。 创建分支的最大的目的就是跟主线进行并行开发时候不影响主线的开发。 2. 如何操作?     假

Chen Yuanshen的专栏 3万+

基于Simulink的伺服电机位置闭环控制仿真

本文带你从零构建了伺服电机位置闭环控制系统​ 的完整Simulink仿真模型,实现了:✅ 搭建PMSM伺服电机、逆变器、机械臂负载的主电路与编码器反馈模型;✅ 用MATLAB Function实现三环控制(位置环PID、坐标变换、电流环PI);✅ 验证阶跃定位(稳态误差0.002°、响应0.08s)与正弦跟踪(误差0.008°)的高性能;✅ 对比开环控制,明确位置闭环在精度、响应、抗扰上的优势;✅ 理解“三环嵌套+反馈校正”的核心思想(精密定位的工程实现)。核心收获。

amy_mhd的博客 173

SVN分支创建 与 分支和主干的代码合并问题

本文转载自:HMonkey 的文章 https://www.jianshu.com/p/e50af339259f 最近项目中涉及到了SVN的创建分支,以及分支和主干代码的合并。在此记录一下主要的东西(恩,感觉这位博主的截图好暖心,就忍不住转一下了)~ 一、创建分支的意义: 在日常项目开发及版本迭代的过程中,经常会遇到这样的场景:当前版本提交QA测试之后,一方面需要在主干上开发下一版本的新需求;另一...

cjm2484836553的博客 8703

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

svn往分支提代码_SVN建立分支和合并代码

1.SVN建立分支正确SVN服务器上会有两个目录:trunk和branches。trunk目录下面代码就是所谓的主版本,而branches文件夹主要是用来放置分支版本。分支版本是依赖于主版本的,因此建立分支版本时候,必须要在trunk文件夹操作才可以的。下面是推荐的操作步骤:(1)从SVN上checkout Trunk版本下来。如果在本地机器上已有了trunk版本,需要更新一下到最新代码。(2)在...

weixin_36122351的博客 1139

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

SVN分支的合并和同步

转载自 https://www.cnblogs.com/mq0036/p/3498908.html 文章目录SVN分支的合并和同步序言1.本地Repository的创建2.Check out3.trunk创建新项目MyProject4.创建branch5.Check out分支6.branch提交一个新文件7.trunk紧接着提交一个修改8.branch再次提交一个修改9.将trunk中的修改同步...

dingli1986的博客 235

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

idea svn分支与分支合并_IDEA用SVN创建分支和合并分支的方法步骤

一、创建分支1、主版本SVN目录结构2、IDEA中创建分支弹窗确认框点击Yes,分支创建成功!3、分支版本SVN目录结构登录svn服务器查看分支二、IDEA中切换分支1、配置分支 (Configure Branches)如果没有可选择的分支,则需要先配置分支版本配置弹窗取消权限配置编辑分支地址加载对应的目录添加分支完成2、切换到指定分支点击OK,完成版本切换。三、合并分支目标:v816版本合并到t...

weixin_39942400的博客 408

IDEA实现SVN创建分支和合并分支

转 IDEA用SVN创建分支和合并分支 ...

bigcharsen的博客 8668

SVN的分支,切换和合并的使用

当我们开发完成一个项目,并且在再次遇到相同类型项目的时候,重新开发难免费时费力。复制粘贴也是麻烦。 这里就用到了SVN的分支功能。下面主要介绍SVN的分支,切换和合并。 1、首先,如果想用最新的项目做分支,就先要保持项目的最新版本。 2、选择项目右键-->team-->分支/标记   URL换为想要分支到的文件夹的 路径。 3、下一步: 第一次创建为head版本。完成 4

娜年夏天 5904

svn和idea客户端拉取分支及合并

转载:https://blog.youkuaiyun.com/keith003/article/details/82899219 1.svn客户端创建分支     在建立项目版本库时,可首先建好项目文件夹,并在其中建立trunk, branches, tags三个空的子目录。这样在trunk中开...

记录日常 2038

嵌入式开发面试风向:从八股到链路,覆盖驱动、性能与AI部署

嵌入式开发的核心,是让数据从外设或传感器穿过驱动、内核与应用层,在有限算力和内存下稳定闭环。底层依赖寄存器操作、中断、RTOS 调度、Linux 字符设备与 platform 驱动、设备树资源描述,以及 epoll、零拷贝、Cache/DMA 一致性、系统裁剪与性能调优等机制;上层则延伸到嵌入式 AI 部署中的模型量化、推理引擎选型与端侧延迟/吞吐优化。工程实践中,这些能力直接影响启动速度、实时性、功耗和推理表现,广泛用于消费电子、工业控制、边缘计算、音视频与机器人。2025-2026 嵌入式面试更关注完整

weixin_34032792的博客 369

对于svn分支和合并的理解

1 svn分支拆分后,可以将分支用来开发单独的功能 2 svn分支合合并,类似于更新代码,只不过这次更新的不是当前分支地址的内容,而是目标分支的内容    svn会将目标分支需要合并的版本中的内容对当前分支进行更新,svn合并的时候,会检查当前文件和目标文件的版本号,并进行update操作。    如果目标分支和当前分支操作了同一个文件,会产生冲突,解决冲突即可 3 更新完成后,当前分支的

林萧的博客 900

SVN中的分支合并策略和最佳实践是什么?

在Subversion (SVN) 中,分支合并是开发过程中非常重要的一部分。合理的分支合并策略和最佳实践可以提高代码质量和开发效率,减少冲突和错误。

qq_33240556的博客 1076

SVN建立分支和合并代码

1.SVN建立分支 正确SVN服务器上会有两个目录:trunk和branches。trunk目录下面代码就是所谓的主版本,而branches文件夹主要是用来放置分支版本。分支版本是依赖于主版本的,因此建立分支版本时候,必须要在trunk文件夹操作才可以的。下面是推荐的操作步骤: (1)从SVN上checkout Trunk版本下来。如果在本地机器上已有了trunk版本,需要更新一下到最新代码。...

csflvcxx的博客 368
上一篇: js 上传图片预览 Firefox,IE6,IE7,IE8
下一篇: paperclip upload from url
aabbcc456aa
博客等级 码龄18年 34粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值