[发明专利]一种基于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中任一所述方法。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110013631.7/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top