SVN错误合并代码的处理

一、问题背景

技术背景: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所做的修改。
1.png

二、解决思路

有如下几个方案

(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合并至主干。完成。

你可能感兴趣的:(版本控制,svn)