[发明专利]一种基于Git的代码行生命周期追溯方法及电子装置有效
申请号: | 202110013631.7 | 申请日: | 2021-01-06 |
公开(公告)号: | CN112698866B | 公开(公告)日: | 2022-06-17 |
发明(设计)人: | 朱家鑫;陈伟;吴国全;窦文生;魏峻 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | G06F8/71 | 分类号: | G06F8/71 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 陈艳 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 git 代码 生命周期 追溯 方法 电子 装置 | ||
本发明公开了一种基于Git的代码行生命周期追溯方法及电子装置,其提取Git仓库中的每一个commit的信息;根据commit的ID及相应父commit的ID,建立commit组成的有向无环图,按广度优先顺序遍历该有向无环图,依据commit的代码变更内容,跟踪提取并记录代码文件行的变更历史信息;对于一个commit中的一个文件的一行待查询代码,依据代码文件行的变更历史信息记录,得到该行待查询代码的产生、位移或消亡的commit的信息。本发明追溯了行粒度的代码生命周期数据,包括代码行的产生点、位移点、消亡点;能够追溯到代码行在多个分支上的完整变更历史;给定任意commit快照中的任意文件的任意行都能直接返回其全部生命周期数据。
技术领域
本发明涉及软件代码变更历史追溯领域,尤其涉及一种基于Git的代码行生命周期追溯方法及电子装置。
背景技术
版本控制是软件开发中的一种重要实践方法,软件项目使用版本控制系统记录软件代码变更的历史,包括每一次变更的开发者、时间、代码变更的内容。
Git是当前最流行的版本控制系统,Git中使用了commit来记录每一次的代码变更,每个commit有一个唯一的ID,commit之间有父子关系,表示commit的逻辑先后顺序,这些父子关系将一个版本库中的commit连接成为一张有向无环图。
Git中代码变更的内容的格式与Linux系统中diff工具的unified format相同。
Git等版本控制系统在记录代码变更时,以commit为基本单元追溯代码的变更历史,commit中又包含了变更的代码文件和文件中变更的行,当开发者或者研究者想要对代码行的生命周期,即一行代码从在代码库中出现到消失的历程开展研究时,无法直接获取相关数据,即无法获取Git版本库中代码行生命周期数据。
发明内容
为解决上述问题,本发明提供一种基于Git的代码行生命周期追溯方法及电子装置,通过遍历Git中的commit并跟踪提取代码文件行的变更历史信息,给出代码文件中每一行的产生、位移和消亡点。
本发明的技术内容包括:
一种基于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的描述。
进一步地,使用Git命令:git log--pretty=format:%H;%P;%an;%ae;%at;%s;%b,获取commit的ID及相应父commit的ID、commit的作者、commit的时间和commit的描述。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110013631.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于编码器多位转角信号的齿轮故障检测方法
- 下一篇:一种氧化锆晶体的制备方法