[发明专利]代码改动影响范围的评估方法、装置、设备及存储介质在审
申请号: | 202210731113.3 | 申请日: | 2022-06-24 |
公开(公告)号: | CN114968817A | 公开(公告)日: | 2022-08-30 |
发明(设计)人: | 赵安琪;程雪梅;汪敏炜;邢亮 | 申请(专利权)人: | 深圳集智数字科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京嘉科知识产权代理事务所(特殊普通合伙) 11687 | 代理人: | 杨波 |
地址: | 518000 广东省深圳市南*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 改动 影响 范围 评估 方法 装置 设备 存储 介质 | ||
1.一种代码改动影响范围的评估方法,其特征在于,包括:
确定需要评估的代码分支,并从分布式版本控制系统中拉取所述代码分支对应的分支代码,其中,所述代码分支包括第一代码分支和第二代码分支;
调用代码比较命令,比较所述第一代码分支与第二代码分支之间的代码差异,基于所述代码差异确定发生改动的代码文件,并生成代码文件改动列表;
利用代码解析工具遍历所述代码文件改动列表中的所有代码文件,并生成待评估的方法签名集合,对项目中的源文件进行遍历,以便解析所述源文件中的每个方法调用,当调用的方法在所述待评估的方法签名集合中时,记录方法调用关系;
基于所述方法调用关系及所述调用的方法,对所述待评估的方法签名集合进行更新,依次对所有的方法调用进行递归查找,直至没有新的调用方法对所述待评估的方法签名集合进行更新时,根据记录的所有方法调用关系对代码改动影响范围进行评估。
2.根据权利要求1所述的方法,其特征在于,所述确定需要评估的代码分支,并从分布式版本控制系统中拉取所述代码分支对应的分支代码,包括:
基于所述分布式版本控制系统中的代码提交记录,确定需要评估的代码分支,并利用所述代码解析工具从所述分布式版本控制系统中拉取所述代码分支对应的分支代码,其中,所述第一代码分支包括特性分支,所述第二代码分支包括主分支。
3.根据权利要求2所述的方法,其特征在于,所述调用代码比较命令,比较所述第一代码分支与第二代码分支之间的代码差异,基于所述代码差异确定发生改动的代码文件,并生成代码文件改动列表,包括:
调用所述分布式版本控制系统中的diff命令,通过diff命令对所述特性分支与所述主分支之间进行比较,确定所述特性分支与所述主分支之间的代码差异,基于所述代码差异确定涉及改动的所有代码文件的改动位置,根据所述代码文件的改动位置生成代码文件改动列表,其中,所述代码文件改动列表中包含所述代码文件及所述代码文件对应的行号。
4.根据权利要求1所述的方法,其特征在于,在所述利用代码解析工具遍历所述代码文件改动列表中的所有代码文件之前,所述方法还包括:
对所述代码解析工具的配置进行初始化操作,通过MVN项目管理工具获取所述项目对应的所有依赖项,将所述依赖项设置到所述代码解析工具中,其中,所述代码解析工具采用JavaParser工具。
5.根据权利要求1所述的方法,其特征在于,所述利用代码解析工具遍历所述代码文件改动列表中的所有代码文件,并生成待评估的方法签名集合,包括:
利用所述代码解析工具对每个所述代码文件中的方法进行解析,得到每个所述方法的签名和方法体对应的开始位置及结束位置,根据代码提交记录以及所述代码文件改动列表中的所述代码文件及所述行号,查找所有修改过的代码对应的方法和签名,根据所述代码对应的方法和签名生成待评估的方法签名集合。
6.根据权利要求1所述的方法,其特征在于,所述对项目中的源文件进行遍历,以便解析所述源文件中的每个方法调用,当调用的方法在所述待评估的方法签名集合中时,记录方法调用关系,包括:
遍历所述项目对应的代码改动后的源文件,利用所述代码解析工具对所述源文件中的每个方法调用进行解析,以便从所述源文件中查找所有调用了所述待评估的方法签名集合中的方法的节点;
当所述节点对应方法的开始行号和结束行号,与所述待评估的方法签名集合中的方法体对应的开始位置及结束位置具有包含关系时,则确定所述节点对应方法与所述待评估的方法签名集合中的方法具有调用关系,其中,所述源文件中的节点包括类和方法组成的信息。
7.根据权利要求1所述的方法,其特征在于,在所述根据记录的所有方法调用关系对代码改动影响范围进行评估之后,所述方法包括:
在进行递归查找后没有新的待评估的方法签名时,根据所述待评估的方法签名集合中所记录的所有方法调用关系,利用Neo4j图形数据库对所述方法调用关系进行处理,并将处理后的所述方法调用关系进行展示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳集智数字科技有限公司,未经深圳集智数字科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210731113.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:应用程序编译方法和装置
- 下一篇:包车费用的支付方法、系统、电子设备和介质