[发明专利]一种代码统计方法、系统、设备以及介质在审
申请号: | 202110714799.0 | 申请日: | 2021-06-25 |
公开(公告)号: | CN113590173A | 公开(公告)日: | 2021-11-02 |
发明(设计)人: | 王祥 | 申请(专利权)人: | 济南浪潮数据技术有限公司 |
主分类号: | G06F8/71 | 分类号: | G06F8/71 |
代理公司: | 北京连和连知识产权代理有限公司 11278 | 代理人: | 刘小峰;张涛 |
地址: | 250000 山东省济南市中国(山东)自由贸易*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 统计 方法 系统 设备 以及 介质 | ||
1.一种代码统计方法,其特征在于,包括以下步骤:
获取多个版本的代码文件并对所述多个版本的代码文件进行排序;
将第n+1个版本的代码文件与第n个版本的代码文件进行对比以得到第n+1个版本的代码文件对应的删除行集合、新增行集合以及修改行集合,其中n≥1且n为整数;
将得到的每一个删除行集合分别与其他不同版本的代码文件对应的新增行集合进行对比以及将得到的每一个修改行集合分别与其他不同版本的代码文件对应的修改行集合进行对比;
根据对比结果对每一个删除行集合、每一个新增行集合、每一个修改行集合进行去重处理,并作为最终的统计结果。
2.如权利要求1所述的方法,其特征在于,将第n+1个版本的代码文件与第n个版本的代码文件进行对比以得到第n+1个版本的代码文件对应的删除行集合、新增行集合以及修改行集合,进一步包括:
将所述第n+1个版本的代码文件中每一个代码行分别与所述第n个版本的代码文件中每一个代码行进行比较;
根据比较结果确定所述第n+1个版本的代码文件和第n个版本的代码文件之间若干个内容完全相同的代码行、若干个内容部分相同的代码行以及若干个内容完全不同的代码行;
将所述第n+1个版本的代码文件中的若干个内容完全不同的代码行作为新增行,将所述第n个版本的代码文件中的若干个内容完全不同的代码行作为删除行,以及将所述第n+1个版本的代码文件中的若干个内容部分相同的代码行作为修改行。
3.如权利要求2所述的方法,其特征在于,还包括:
分别计算所述第n+1个版本的代码文件中的每一个内容部分相同的代码行与所述第n个版本的代码文件中对应的代码行的相似度;
响应于相似度大于阈值,将第n+1个版本的代码文件中所述内容部分相同的代码行作为修改行;
响应于相似度小于阈值,将第n+1个版本的代码文件中所述内容部分相同的代码行作为新增行,并将所述第n个版本的代码文件中对应的代码行作为删除行。
4.如权利要求3所述的方法,其特征在于,分别计算所述第n+1个版本的代码文件中的每一个内容部分相同的代码行与所述第n个版本的代码文件中对应的代码行的相似度,进一步包括:
确定所述第n+1个版本的代码文件中内容部分相同的代码行与所述第n个版本的代码文件中对应的代码行之间多个相同字符串;
统计所述多个相同字符串中的字符数量;
利用所述字符数量除以所述第n+1个版本的代码文件中内容部分相同的代码行的总字符数,以作为所述相似度。
5.如权利要求1所述的方法,其特征在于,将得到的每一个删除行集合分别与其他不同版本的代码文件对应的新增行集合进行对比以及将得到的每一个修改行集合分别与其他不同版本的代码文件对应的修改行集合进行对比,进一步包括:
响应于删除行集合中的删除行与新增行集合中的新增行内容相同,对所述新增行集合中相应的新增行进行标记;
响应于不同的修改行集合中存在内容相同的修改行,对相应的修改行进行标记。
6.如权利要求5所述的方法,其特征在于,还包括:
响应于删除行集合中的删除行与新增行集合中被标记的新增行内容相同,对所述删除行集合中相应的删除行进行标记。
7.如权利要求6所述的方法,其特征在于,根据对比结果对每一个删除行集合、每一个新增行集合、每一个修改行集合进行去重处理,进一步包括:
将每一个删除行集合、每一个新增行集合和每一个修改行集合中标记的代码行删除。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于济南浪潮数据技术有限公司,未经济南浪潮数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110714799.0/1.html,转载请声明来源钻瓜专利网。