[发明专利]一种Git仓库文件注解系统的可视化漂移方法有效
申请号: | 201810016245.1 | 申请日: | 2018-01-08 |
公开(公告)号: | CN108228231B | 公开(公告)日: | 2021-07-27 |
发明(设计)人: | 张卫丰;申玉江;诸葛文杜 | 申请(专利权)人: | 南京邮电大学 |
主分类号: | G06F8/73 | 分类号: | G06F8/73;G06F8/77 |
代理公司: | 南京知识律师事务所 32207 | 代理人: | 李吉宽 |
地址: | 210003 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 git 仓库 文件 注解 系统 可视化 漂移 方法 | ||
1.一种Git仓库文件注解系统的可视化漂移方法,其特征在于,
包括以下步骤:
S1:获取带有注解的历史版本文件;
从存储历史版本文件注解的数据库获取该版本文件对应的历史版本文件的注解记录;
S2:转换文件内容格式;
将最新版本文件和历史版本文件中的每一行数据转换为哈希字符;
S3:文件对比分析;
对比分析新版本文件和历史版本文件中代码块之间的关系,标记新版本文件中的代码块对应历史版本文件中的代码块是添加、删除或者是相等;文件对比分析,具体为:
1)首先比较两个文件的哈希字符串是否完全相等,如果是,则直接返回整个哈希字符串作为一个相等代码块,否则进行下一步;
2)判断两个文件的哈希字符串中是否有共有前缀字符串,如果有,则记录结束位置;
3)判断两个文件的哈希字符串中是否有共有后缀字符串,如果有,则记录起始位置;
4)如果两个文件的哈希字符串中有相等前缀或者相等后缀字符串,则截取两个文件,标记为相等代码块;如果没有相等前缀字符串和相等后缀字符串,则对两个文件的哈希字符串从前往后进行遍历,直到出现两个字符相同,将历史版本文件没有的字符串,标记为插入,将新版本文件中没有的字符串标记为删除代码块;截取已经标记的字符串,剩余的部分循环执行步骤S2、步骤S3和步骤S4,直到新文件循环遍历结束;
S4:统计相等代码块的行号对应关系;
对相等标记代码块进行分析,将历史版本文件中的行号与新版本文件中的行号一一对应,最终获取到所有历史版本文件中的注解在新版文件本中的对应位置;
S5:可视化历史版本注解代码;
把注解内容在新版本文件行列号位置处进行标识,当点击该标识时可视化该注解内容。
2.根据权利要求1所述的Git仓库文件注解系统的可视化漂移方法,其特征是步骤S1中,获取带有注解的历史版本文件,具体为:
首先查找存储注解代码与注解内容之间一致性关系的数据库并获取带有注解文件所对应的所有带有注解的历史版本文件的注解记录,找到每条记录中的仓库版本号,然后查找Git仓库,获取项目版本号对应的文件,最终,将会获取到带有注解文件对应的所有历史版本文件。
3.根据权利要求1所述的Git仓库文件注解系统的可视化漂移方法,其特征在于步骤S2中,转换文件内容格式,具体为:
1)首先获取整个文件内容,然后将其遍历,使用List集合的方式存储每一行,最终将文件转换为List集合;
2)遍历List集合,将List集合中的记录作为Map集合的key,将已经遍历的行数作为key对应的value,如果Map集合已经有key对应遍历的行记录,则获取该key对应的value,然后把该value转换为char类型字符放入存储转换后字符的字符容串;如果Map集合中没有key对应遍历的行记录,则进行步骤S3操作,否则继续遍历List集合;
3)将步骤S2遍历的行记录放入Map集合,该行记录作为Map集合的key,已经遍历的行数作为该key对应的value;同时把该value转换为char类型字符放入存储转换后字符的字符串;继续执行步骤S2,遍历List集合。
4.根据权利要求1所述的Git仓库文件注解系统的可视化漂移方法,其特征在于步骤S4中,统计相等代码块的行号对应关系,具体为:
基于步骤S3取得的对比分析的两个文件代码之间的关系,接下来统计两个文件之间相等代码块行号对应关系,
首先对步骤S3标记的代码块集合进行遍历,如果是相等标记,则对该标记进行循环,存储新版本文件行号与历史版本文件行号之间的对应关系;如果是插入标记,则将新版本文件行号记录加上插入标记的行数,作为存储下面相等代码块行号之间对应关系的新版本文件的起始行号;如果是删除标记,则将历史版本文件行号记录加上删除标记的行数,同样是作为存储下面相等代码块行号之间对应关系的历史版本文件的起始行号,遍历结束后,将得到历史版本文件行号与新版本文件行号之间的对应关系。
5.根据权利要求1所述的Git仓库文件注解系统的可视化漂移方法,其特征在于步骤S5中,可视化历史版本文件注解,具体为:
通过步骤S4获取到历史版本文件行号与新版本文件行号之间的对应关系后,使用步骤S1中从存储注解代码与注解内容之间一致性关系的数据库获取到的注解记录中找到历史版本文件注解的行号,然后将该行号作为步骤S4获取的对应关系的key,通过hash的key和value对应关系找到该key对应的value,该value即为新版本文件中注解的代码位置,通过上述步骤,即可获取到所有历史版本文件的注解在新版本文件中的位置对应关系,最后在该位置处显示带有注解的标识,当用户点击该标识时,可视化该位置的注解内容。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810016245.1/1.html,转载请声明来源钻瓜专利网。