TortoiseSVN使用-合并分支代码

简介: TortoiseSVN使用-合并分支代码

image.png

@[toc]

3.4.12 合并分支代码

需求:这里为了演练一种场景,我主分支trunk_V01创建一个新的开发分支trunk_V02,然后主分支和新分支一起开发不同通能,最后我要把trunk_V02新分支合并到主分支trunk_V01上,要求是主分支新创建的文件要存在,新分支trunk_V02新创建的文件也要存在,冲突的相同文件名内容解决冲突即可。

说明:主分支trunk_V01里面只有一个文件text.txt文件,内容如图,然后将依照当前主分支创建新分支命名叫trunk_V02

image.png

接下来模拟两个分支不同开发,主分支创建新文件trunk_V01_01.txt,并且修改text.txt内容,然后新分支trunk_V02创建新文件trunk_V01_02.txt,并且修改text.txt内容,项目目录如图1,主分支如图2,新分支如图3

image.png

如图1

image.png

如图2

image.png

如图3
TortoiseSVN有2种合并方式

TortoiseSVN有2种合并方式:

image.png

  • 合并一个版本范围 Merge a range of revisions:此类型应用最为广泛,主要是把分支中的修改合并到主干上来。在主干上点击右键选择合并,然后选择合并类型:合并一个范围的版本。合并的源URL填写的是要合并的分支的URL,待合并的版本范围如果为空,则指的是合并分支上所有的版本,即自从分支创建以来到分支当前最新版本的所有演变。如果只是选择其中一个版本,或者几个版本,那么就表示只是将制定的n个版本的变化合并到主干上。如果只是选择其中一个版本,那么表示只是选择那个版本的修改,之前或之后的修改将不被采纳。
  • 合并两个不同的树 Merge two different trees:此类型与前1种类型不同,第一种类型可以选择分支合并的版本,主干不能选择版本;而这种类型则是无论是主干还是分支都可以选择合并的版本,即可以选择过去的一个主干版本与分支的某个版本进行合并。合并的时候以选择的分支版本为主,如果选择的主干版本与分支版本有不同的地方,合并时主干部分将被放弃
    • 起始URL:选择主干目录的URL(应当和当前工作副本的URL一致,这个是所谓的合并点)。
    • 结束URL:选择要合并的分支的URL。
    • 起始和结束的版本:一般起始版本应当找到最后一次同步时的版本,如果从没有同步过(第一次合并),则选择创建分支时的版本,结束版本一般是最新版本,如果你不想将某些内容合并进主干的话,也可以选择一个合并点。
演示场景1:(合并一个版本范围 Merge a range of revisions)

演示场景1:(合并一个版本范围 Merge a range of revisions)

  1. 第一步,在文件夹trunk_V01点击右键“合并”

image.png

  1. 选择第一种合并类型

image.png

  1. 合并源url选择trunk_V01的地址,将要合并的修改版本范围选择所有版本

image.png

image.png

image.png

  1. 打开合并后的文件夹查看,最终效果是:text.txt冲突了但解决了冲突之后拥有全新的代码,主分支trunk_V01新创建的文件trunk_V01_01.txt依然存在,新分支trunk_V02新创建的文件trunk_V02_01.txt也存在。(即:最终效果正确,就是我们想要的)

image.png

演示场景2:(合并两个不同的树 Merge two different trees),不设置主分支版本

演示场景2:(合并两个不同的树 Merge two different trees),不设置主分支版本

  1. 重复上面的第一步
  2. 选择第2种合并类型

image.png

  1. 选择起始、结束url,版本都用最新的版本

image.png

image.png

image.png

  1. 打开合并后的文件夹查看,最终效果是:text.txt冲突了但解决了冲突之后拥有全新的代码,但主分支trunk_V01新创建的文件trunk_V01_01.txt被删除了,新分支trunk_V02新创建的文件trunk_V02_01.txt存在。(即:最终效果不正确,新分支的确实都存在,但主分支新创建的文件全丢了)

image.png

问题:思考为啥这种方式对导致主分支新创建的文件丢失?

答案:因为创建新分支trunk_V02的时候主版本只有text.txt文件,而trunk_V01_01.txt是主分支后面新开发创建的,在合并的时候由于主分支采用最新版本情况下导致合并的时候不认识,所以导致合并会删除它。而场景3由于设置了主分支版本号,就相当于合并代码的时候是从主分支在最开始刚创建新分支的时候版本进行合并的,因此主分支新创建的文件trunk_V01_01.txt会被保留。

(我用大白话再表述一遍:当前主分支trunk_V01版本号为1的时候,主分支trunk_V01只有text.txt文件,这时候创建的新分支trunk_V02版本号为2,这时候分别开发提交自己代码,主分支trunk_V01新创建trunk_V01_01.txt文件并提交此时版本号为3,新分支trunk_V02也新创建trunk_V02_01.txt文件并提交此时版本号为4,此时再进行合并代码的时候由于新分支trunk_V02是从主分支trunk_V01版本号为1时创建过来的,所以SVN只认识主分支上版本号为1之前的所有改动,即只认识text.txt文件,而后来的trunk_V01_01.txt文件是主分支trunk_V01新创建的,所以SVN不认识,这就导致合并的时候给它删了。即:所谓的分支版本合并,就是把两个分支设置版本号之前的所有改动给统一合并代码。)

image.png

演示场景3:(合并两个不同的树 Merge two different trees),设置主分支版本

演示场景3:(合并两个不同的树 Merge two different trees),设置主分支版本

  1. 重复上面的前两步
  2. 主分支版本设置为创建新分支trunk_V02时候的版本,具体方法可查看“版本分支图”,选中新分支trunk_V02文件夹点击右键“版本分支图”查看,可以查看起始版本是116,说明主分支当时的版本是115(即在主分支115版本时进行创建了新分支trunk_V02,所以第三步这里输入115)

image.png

image.png

  1. 选择起始、结束url,主分支版本进行设置,新分支采用最新的版本

image.png

image.png

image.png

  1. 打开合并后的文件夹查看,最终效果是:text.txt冲突了但解决了冲突之后拥有全新的代码,主分支trunk_V01新创建的文件trunk_V01_01.txt依然存在,新分支trunk_V02新创建的文件trunk_V02_01.txt也存在。(即:最终效果正确,就是我们想要的)

image.png

结论总结:

结论总结:

结论1:“合并一个版本范围”方式是默认合并方式。

结论2:“合并一个版本范围”方式相当于往主分支最新版本上面合代码,因为它不像第二种方式可以指定主分支版本号。

结论3:“合并两个不同树“方式相当于更细化的合并操作,可以分别指派主分支和新分支的版本号进行两两合并,效果更自由。

结论4:“合并一个版本范围”方式和“合并两个不同树且设置主分支版本”方式效果是一样的。

结论5:“合并两个不同树且不设置主分支版本”方式,那么最终的效果就是:如果选择的主干版本与分支版本有不同的地方,合并时主干部分将被放弃。(这就是为什么演练场景2时发现主分支丢文件了,被删除了。)

本人其他相关文章链接

1.Windows下版本控制器(SVN) - 1、开发中的实际问题+2、版本控制简介
2.Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
3.Windows下版本控制器(SVN)-TortoiseSVN使用+权限配置+合并深度介绍+分支介绍
4.Windows下版本控制器(SVN)- 配置版本库
5.Windows下版本控制器(SVN)-启动服务器端程序
6.TortoiseSVN使用-授权访问
7.TortoiseSVN使用-TortoiseSVN更换或重置登录用户
8.TortoiseSVN使用-合并分支代码
9.TortoiseSVN使用-权限配置
10.TortoiseSVN使用-合并深度介绍

image.png

重要信息

image.png

目录
相关文章
|
5月前
|
搜索推荐 前端开发 JavaScript
通义灵码深度测评报告
通义灵码是阿里云推出的智能编程平台,基于Qwen3大模型与MCP服务生态,重新定义现代软件开发范式。本文测评聚焦其四大核心功能:编程智能体(自主决策开发)、MCP工具生态(加速开发流程)、记忆感知(个性化体验)及深度开发能力(智能推荐与解释)。实测数据显示,相比传统开发,效率显著提升,如API开发提速300%。展望应用场景包括低代码开发、DevOps自动化及教育领域等。总结建议增强多语言支持、优化复杂逻辑并建立开发者社区知识库。
|
存储 安全 Java
BlockingQueue(阻塞队列)基本使用指南
BlockingQueue(阻塞队列)基本使用指南
495 1
|
数据可视化 索引
数据可视化之antv/g6 元素之边(edge)
数据可视化之antv/g6 元素之边(edge)
2197 0
|
5月前
|
缓存 监控 安全
通义大模型与现有企业系统集成实战《CRM案例分析与安全最佳实践》
本文档详细介绍了基于通义大模型的CRM系统集成架构设计与优化实践。涵盖混合部署架构演进(新增向量缓存、双通道同步)、性能基准测试对比、客户意图分析模块、商机预测系统等核心功能实现。同时,深入探讨了安全防护体系、三级缓存架构、请求批处理优化及故障处理机制,并展示了实时客户画像生成和动态提示词工程。通过实施,显著提升客服响应速度(425%)、商机识别准确率(37%)及客户满意度(15%)。最后,规划了技术演进路线图,从单点集成迈向自主优化阶段,推动业务效率与价值持续增长。
230 8
|
5月前
|
数据采集 机器学习/深度学习 搜索推荐
利用通义大模型构建个性化推荐系统——从数据预处理到实时API部署
本文详细介绍了基于通义大模型构建个性化推荐系统的全流程,涵盖数据预处理、模型微调、实时部署及效果优化。通过采用Qwen-72B结合LoRA技术,实现电商场景下CTR提升58%,GMV增长12.7%。文章分析了特征工程、多任务学习和性能调优的关键步骤,并探讨内存优化与蒸馏实践。最后总结了大模型在推荐系统中的适用场景与局限性,提出未来向MoE架构和因果推断方向演进的建议。
926 11
|
5月前
|
传感器 人工智能 自然语言处理
比亚迪座舱接入通义大模型,未来将联合打造更多AI智能座舱场景
比亚迪与阿里云深度合作,将通义大模型应用于智能座舱和营销服务。通过通义万相,腾势推出“AI壁纸”功能;借助通义星尘,实现“心理伴聊”等情感陪伴场景。阿里云Mobile-Agent智能体落地比亚迪座舱,支持复杂语音操作,如查询淘宝物流、订火车票等。该方案基于全视觉解决技术,具有强泛化能力,未来双方将持续拓展更多AI应用。
742 9
|
5月前
|
自然语言处理 并行计算 机器人
ParScale:一种全新的大模型Scaling Law
ParScale是一种新的模型扩展路线,通过并行计算增强模型能力,无需增加参数量。它引入多个并行流处理输入,动态聚合输出,显著提升性能,尤其在数学和编程任务中表现突出。相比传统方法,ParScale仅增加1/22的内存和1/6的延迟,适合边缘设备。研究还提出两阶段训练策略,降低训练成本。未来将探索更多模型架构和大数据场景下的应用潜力。
196 1
|
5月前
TortoiseSVN使用-权限配置
TortoiseSVN使用-权限配置
237 2
|
5月前
|
监控 数据可视化 关系型数据库
Aipy实战:使用Deepseek-V3生成多协议弱口令爆破调度工具
Aipy多协议弱口令爆破调度系统针对传统单协议工具碎片化、管理低效等问题,集成HTTP、SSH、MySQL等协议支持,提供图形化统一操作界面。其核心特性包括:动态资源分配的任务调度、实时可视化进度监控、智能账户锁定识别及HTML结果导出。通过上传自定义字典、配置并发数等功能,实现高效爆破,解决了多协议切换中断、人工追踪进度等痛点,为渗透测试提供自动化解决方案。
|
4月前
|
存储 人工智能 数据库
点我!1分钱获取你的专属表白网页,浪漫由大模型代运营
MCP 技术持续走红,应用场景不断拓展。近期支付功能上线,推动商业化落地。作者借助「百宝箱智能体平台」打造了一款名为「与你」的情侣互动助手,支持游玩攻略、牵手技巧、告白网页定制等功能,并结合 MCP 实现支付宝支付与网页部署,兼具实用性与仪式感,助力恋爱小白提升情感表达。
200 2
点我!1分钱获取你的专属表白网页,浪漫由大模型代运营

热门文章

最新文章

下一篇
oss云网关配置