SVN错误合并代码的处理

算法霜晶客
• 阅读 2577

一、问题背景

技术背景:SVN版本管理

两个版本(SAP5.2需求开发、申报改造)并行开发,SAP5.2在Trunk开发,申报改造在6.0.1开发,原计划6.0.1合并到trunk后一起上线。

因为申报改造有延期,所以申报改造不能与5.2需求开发同步上线,但此时6.0.1部分代码(2月12、13、14日)已合并到trunk,更糟糕的是,6.0的代码(已上线)合并至6.0.1后,再合并至trunk。

目前的问题是trunk代码需要按期发版,但合并的6.0.1的代码未能发生产,所以需要剔除6.0.1所做的修改,并保留6.0所做的修改。
SVN错误合并代码的处理

二、解决思路

有如下几个方案

(1)代码6.0.1还原至打分支版本,合并6.0修改,再合并到turnk。但这个方法并不能剔除掉6.0.1的修改,方案无效。

(2)在trunk手工改回去,但此更改成本较高,涉及到的同事都要参与,而且容易出错,改完还需要测试,工作量大。

(3)代码版本处理的目的其实就是剔除6.0.1所有修改,并且保留6.0所有修改。所以可以先复原6.0.1所作的修改,然后重新提交6.0的修改。使用此方案。为避免问题,都在新建的分支上操作。

三、解决过程

1、创建分支,trunk分支6.0.5,6.0.1分支6.0.1.1;

2、在分支6.0.5使用SVN工具,打开日志,选择6.0.1合并记录,右键,点击“复原此版本作出的修改”。需从高版本到低版本依次处理,出现冲突时选择“Accept incoming”,处理完后,提交代码。

3、将6.0.1的分支6.0.1.1复原至打分支版本(1月20日版本),并合并6.0所有修改,提交代码。

4、将分支6.0.1.1最后提交,合并至6.0.5,合并过程中有少部分文件会出现冲突(在trunk和在6.0都有做调整的),逐个解决就行。处理完毕,提交代码。至此,6.0.5代码就是剔除了6.0.1提交并合并6.0的版本了。

5、将6.0.5合并至主干。完成。

点赞
收藏
评论区
推荐文章
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
雷厉风行 雷厉风行
2年前
Mac程序员开发必备-Cornerstone for Mac 永久版-SVN 管理工具
CornerstoneforMac是一款Mac程序员开发必备的SVN管理工具。它提供了简单易用的用户界面和先进的版本控制功能,帮助程序员轻松管理和开发SVN代码。
晴雯 晴雯
2年前
Cornerstone (SVN管理)for Mac版
使用CornerstoneforMac的主要原因是它是一款功能强大的SVN(Subversion)客户端软件。SVN是一个版本控制系统,用于管理和控制源代码版本。使用SVN可以帮助团队协作开发,保证代码的质量和稳定性。以下是使用测评:Cornerstone
Stella981 Stella981
3年前
SVN的Trunk Branchs Tags
我们在一些著名开源项目的版本库中,通常可以看到trunk,branches,tags等三个目录。由于SVN固有的特点,目录在SVN中并没有特别的意义,但是这三个目录却在大多数开源项目中存在,这是因为这三个目录反映了软件开发的通常模式。trunk是主分支,是日常开发进行的地方。branches是分支。一些阶段性的release版本,这些版本是可以继
Easter79 Easter79
3年前
SVN的Trunk Branchs Tags
我们在一些著名开源项目的版本库中,通常可以看到trunk,branches,tags等三个目录。由于SVN固有的特点,目录在SVN中并没有特别的意义,但是这三个目录却在大多数开源项目中存在,这是因为这三个目录反映了软件开发的通常模式。trunk是主分支,是日常开发进行的地方。branches是分支。一些阶段性的release版本,这些版本是可以继
Stella981 Stella981
3年前
IntelliJ IDEA(八) :git的使用
项目管理离不开版本控制,目前主流版本控制工具大概就是SVN和Git,至于两者有啥区别这里就不详细介绍了,如果有不明白的可以上网查资料,后期如果有机会我再开篇栏目细说,而且现在市场上Git的使用率已经远远高于SVN。我们在用IDEA开发项目的时候如何熟练使用Git来控制代码版本呢?一、安装Git使用Git当然需要先安装Git,安装过程就
Stella981 Stella981
3年前
GitHub和SVN的区别
GitHub和SVN的区别之前用的版本控制系统是SVN,但是最近因为流行使用GitHub,这篇文章认识一下Git和SVN的区别。1)Git是分布式的,SVN不是: 这是git和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上
Stella981 Stella981
3年前
Git和GitHub的基本操作
GIT版本控制系统版本控制系统功能:1.记录版本历史信息(记录每一次修改的记录)2.方便团队之间相互协作开发3.远程开发......常用的版本控制系统cvs/svn:集中式分布系统git:分布式版本控制系统1.GIT工作原
Stella981 Stella981
3年前
Git基础命令篇
一、Git介绍(1)Git是一个开源(LinusTorvalds为了帮助管理Linux内核开发而开发)的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,与常用的版本控制工具CVS,SVN等不同,它采用了分布式版本库的方式,不必服务器端软件支持。(2)Git的工作区、暂存区和版本库:工作区:就
晴雯 晴雯
2年前
MacOS高效iOS代码编写工具|AppCode 2023 激活版v2023.1 兼容M1M2
AppCode是由JetBrains开发的一款适用于iOS/macOS开发的集成开发环境。具有强大的代码分析和重构功能,包括代码自动完成、语法高亮、智能提示、代码导航和错误检查等。此外,AppCode还支持各种版本控制系统如Git、SVN以及Mercuri
美凌格栋栋酱 美凌格栋栋酱
4个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(