[发明专利]一种基于Git的代码行生命周期追溯方法及电子装置有效
申请号: | 202110013631.7 | 申请日: | 2021-01-06 |
公开(公告)号: | CN112698866B | 公开(公告)日: | 2022-06-17 |
发明(设计)人: | 朱家鑫;陈伟;吴国全;窦文生;魏峻 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | G06F8/71 | 分类号: | G06F8/71 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 陈艳 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 git 代码 生命周期 追溯 方法 电子 装置 | ||
1.一种基于Git的代码行生命周期追溯方法,其步骤包括:
1)提取Git仓库中的每一个commit的信息,其中所述commit的信息包括:commit的ID、相应父commit的ID、commit的作者、commit的时间、commit的描述和commit的代码变更内容;
2)根据commit的ID及相应父commit的ID,建立commit组成的有向无环图,按广度优先顺序遍历该有向无环图,依据commit的代码变更内容,跟踪提取并记录代码文件行的变更历史信息,其中所述代码文件行的变更历史信息包括:
a)文件,包含一个或多个该文件被创建的commit;
b)文件被创建的commit,包含零个或多个行;
c)行,包含一个或多个行发生位移时的commit;
d)行发生位移时的commit,包含上一次位移时的commit的ID和位移后的行号;
3)对于一个commit中的一个文件的一行待查询代码,依据代码文件行的变更历史信息记录,得到该行待查询代码的产生、位移或消亡的commit的信息,其中所述该行待查询代码的产生、位移或消亡的commit的信息包括:commit的ID、commit的作者、commit的时间和commit的描述。
2.如权利要求1所述的方法,其特征在于,使用Git命令:git log--pretty=format:%H;%P;%an;%ae;%at;%s;%b,获取commit的ID及相应父commit的ID、commit的作者、commit的时间和commit的描述。
3.如权利要求1所述的方法,其特征在于,使用Git命令:git diff父commit IDcommit ID,获取commit的代码变更内容。
4.如权利要求1所述的方法,其特征在于,记录所述commit组成的有向无环图的数据结构包括:双向链表。
5.如权利要求1所述的方法,其特征在于,记录所述代码文件行的变更历史信息的数据结构包括:字典结构。
6.如权利要求1所述的方法,其特征在于,所述commit的代码变更内容包括:变更文件的文件路径与文件变更内容。
7.如权利要求6所述的方法,其特征在于,文件以文件路径作为唯一标识;文件被创建的commit以commit的ID作为唯一标识;行以被计入的顺序编号作为唯一标识;行发生位移时的commit以commit的ID作为唯一标识。
8.如权利要求1所述的方法,其特征在于,记录位移后的行号的策略包括:
1)如果是添加的行,直接记录代码变更内容中变更后的行号;
2)如果是删除的行,直接记录为0;
3)如果是保留的行,从代码变更内容中读取该保留的行之前添加的行数与删除的行数,用该保留的行在其上一次位移后的行号,累加该保留的行之前添加的行数及累减该保留的行之前删除的行数。
9.一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1-8中任一所述方法。
10.一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行如权利要求1-8中任一所述方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110013631.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:基于编码器多位转角信号的齿轮故障检测方法
- 下一篇:一种氧化锆晶体的制备方法