[发明专利]一种软件代码的多变更版本合并方法及装置有效
申请号: | 201911383077.0 | 申请日: | 2019-12-28 |
公开(公告)号: | CN111221566B | 公开(公告)日: | 2021-10-22 |
发明(设计)人: | 魏昭;梁广泰;李琳;王千祥 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F8/71 | 分类号: | G06F8/71;G06F8/72 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 黄冠雄 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 代码 多变 版本 合并 方法 装置 | ||
一种软件代码的多变更版本合并方法及装置,本申请中,合并装置可以先对软件代码初步合并版本、两个不同的软件代码变更版本中的代码变更区域进行分析。在确定了两个代码变更区域的变更意图之后,合并装置基于冲突消除规则集合,依据两个代码变更区域的变更意图消除件软代码初步合并版本中的冲突块,相较于基于文本消除软件代码初步合并版本中冲突块的方式,通过分析不同代码变更区域的变更意图消除冲突块的方式,能够提高消除冲突块的准确性,进一步,实现高效的软件代码的多变更版本合并。
技术领域
本申请涉及计算机技术领域,尤其涉及一种软件代码的多变更版本合并方法及装置。
背景技术
在对软件代码进行变更时,若针对同一软件代码存在多种软件代码变更版本,需要将这多个软件代码变更版本进行合并。
目前,Git作为一种分布式代码控制管理工具,通过Git可以实现软件代码的多变更版本合并,并输出合并后的软件代码版本。
但由于Git进行软件代码的多变更版本合并的方式,是一种基于文本的软件代码合并方式。也就是以软件代码的代码行或字符为单位,检测各个软件代码变更版本针对同一代码行或字符的变更,再进行合并。
这种基于文本的软件代码合并方式,无法精确地对软件代码变更版本中变更的代码进行语义分析,不能对多种软件代码变更版本进行较好的合并,输出的合并后的软件代码版本会存在大量的冲突块,其中,冲突块是指Git无法进行合并的代码区域。
显然,目前软件代码的多变更版本合并的方式准确性较差。
发明内容
本申请提供一种软件代码的多变更版本合并方法,以提供准确的消除软件代码初步合并版本中的冲突块。
第一方面,本申请提供了一种软件代码的多变更版本合并方法,该方法可以由合并装置执行,在该方法中,合并装置可以先对软件代码初步合并版本、第一软件代码变更版本以及第二软件代码变更版本进行分析。例如,可以定位软件代码初步合并版本中冲突块在第一软件代码变更版本中的第一代码区域以及该冲突块在第二软件代码变更版本中的第二代码区域,分析第一代码区域和第二代码区域的变更意图。
在确定了第一代码区域和第二代码区域的变更意图之后,合并装置基于冲突消除规则集合,依据第一代码区域的变更意图和第二代码区域的变更意图消除冲突块,也就是消除冲突块中的冲突,输出消除了该冲突块的软件代码初步合并版本。合并装置可以显示消除了该冲突块的软件代码初步合并版本,以供用户查看,也可以将消除了该冲突块的软件代码初步合并版本发送给其他装置,由其他装置显示消除了该冲突块的软件代码初步合并版本。
通过上述方法,合并装置不再基于文本消除软件代码初步合并版本中的冲突块,而是分析不同软件代码变更版本的变更意图,消除冲突块,能够保证冲突块消除的准确性,进一步,实现高效的软件代码的多变更版本合并。
在一种可能的实现方式中,若软件代码初步合并版本中还存在一些未消除的冲突块,该合并装置可以调用预测模型消除软件代码初步合并版本中的冲突块,预测模块是预先已训练好的,能够根据输入的冲突块输出该冲突块的冲突消除方案的模型。
通过上述方法,合并装置除了基于冲突消除规则消除软件代码初步合并版本中的冲突块,还能够借助预测模型消除软件代码初步合并版本中的冲突块,可以尽可能多的消除软件代码初步合并版本中的冲突块,能够保证软件代码多变更版本合并的准确性,还可以提高软件代码多变更版本的合并效率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911383077.0/2.html,转载请声明来源钻瓜专利网。