一种获取代码精确变更信息的方法与系统技术方案

技术编号:33149578 阅读:18 留言:0更新日期:2022-04-22 14:03
本发明专利技术公开了一种获取代码精确变更信息的方法和系统,包括:确定待对比的不同版本的源代码版本号;依据版本号获取待对比的不同版本的源代码文件;比较获取的不同版本的源代码文件,获取不同版本源代码间的行变更信息;读取获取的各版本源代码文件,获取各版本源代码文件的行类别信息;读取获取的各版本源代码文件,获取各版本源代码文件的版本信息;依据行变更信息和版本号,匹配出源代码文件中变化行的行类别信息和版本信息并输出。本发明专利技术可在源代码版本迭代过程中通过分析不同版本的源代码文本找出行变更信息,然后利用行变更信息为索引,找出源代码在版本迭代过程中变化行的行类别信息和版本信息,有利于精确分类统计代码行的变更信息。行的变更信息。行的变更信息。

【技术实现步骤摘要】
一种获取代码精确变更信息的方法与系统


[0001]本专利技术属于软件工程中代码的开发及管理
,具体涉及一种获取代码精确变更信息的方法与系统。

技术介绍

[0002]现有技术对代码文件更新的追踪方法,能够获得一次变更中的文件行号,及变更的文件行中的文本信息。例如使用文件版本管理工具如SVN(subversion)或GIT,通过执行查找版本差异的命令,可以获得上述信息。但是无法获得已变更的文件行历史的版本信息,而且一个物理代码文件中,除了上述信息,还分为对业务实现解释的注释行、无关紧要的空白行和有实际处理相关的代码行三种行类别。文件版本管理工具是无法获得变更的文件行的行类别信息的。

技术实现思路

[0003]本专利技术所要解决的技术问题是克服现有技术的缺陷,提供一种获取代码精确变更信息的方法与系统,可根据不同版本源代码的行变更信息计算出源代码的行类别变更信息和版本变更信息。
[0004]为达到上述目的,第一方面,本专利技术提供一种获取代码精确变更信息的方法,包括如下步骤:确定待对比的不同版本的源代码版本号;依据版本号获取待对比的不同版本的源代码文件;比较获取的不同版本的源代码文件,获取不同版本源代码间的行变更信息;读取获取的各版本源代码文件,获取各版本源代码文件的行类别信息;读取获取的各版本源代码文件,获取各版本源代码文件的版本信息;依据行变更信息和版本号,匹配出源代码文件中变化行的行类别信息和版本信息并输出。
[0005]进一步地,确定待对比的不同的版本的源代码版本号的依据包括时间戳。
[0006]进一步地,依据版本号在文件版本管理工具中获取待对比的不同版本的源代码文件。
[0007]进一步地,读取获取的各版本源代码文件,获取各版本源代码文件的行类别信息包括如下步骤:获取源代码文件的扩展名,依据文件的扩展名,使用不同的正则表达式分析源代码文件,获取源代码文件中每行代码的行类别信息。
[0008]进一步地,读取获取的各版本源代码文件,获取各版本源代码文件的版本信息包括如下步骤:读取截止到该版本号的源代码文件的提交记录,获取源代码文件中每行代码的版本信息。
[0009]进一步地,所述源代码文件的版本信息包括:作者、时间戳和工具分配的版本号。
[0010]进一步地,依据行变更信息和版本号,匹配出源代码文件中变化行的行类别信息和版本信息并输出包括如下步骤:依据行变更信息,使用版本号,在行类别信息中匹配出变化的行类别,在版本信息中匹配出变化的版本信息,并输出。
[0011]第二方面,本专利技术提供一种获取代码精确变更信息的系统,所述系统执行第一方面任一项所述的方法,包括依次连接的:变更差异获取模块,用于获不同版本源代码间的行变更信息;行类别获取模块,用获取各版本源代码文件的行类别信息;版本信息获取模块,用于获取各版本源代码文件的版本信息;和变更信息计算模块,用于依据行变更信息匹配行类别信息和版本信息,并输出。
[0012]本专利技术所达到的有益效果:本专利技术提出一种获取代码精确变更信息的方法与系统,采用本方法和系统可根据不同版本源代码的行变更信息精确获取代码变更行的行类别信息和变更行的版本信息,从而可在日常的代码开发过程中精确分析源代码文件的变化信息,帮助工作人员做出更加精确的统计分析,有利于软件工程活动的展开。
附图说明
[0013]图1是本专利技术实施例一提供的一种获取代码精确变更信息的方法的流程图;图2是本专利技术实施例二提供的一种获取代码精确变更信息的系统的结构示意图。
具体实施方式
[0014]下面结合附图对本专利技术作进一步描述。以下实施例仅用于更加清楚地说明本专利技术的技术方案,而不能以此来限制本专利技术的保护范围。
[0015]实施例一:本专利技术实施例一提供一种获取代码精确变更信息的方法,如图1所示,包括如下步骤:步骤一:确定待对比的不同版本的源代码版本号:依据工作需求以时间戳为区分源代码版本号的依据,选取不同时间戳对应版本的源代码;至少选取两个版本的源代码,为简要说明设计点,本专利技术的实施例一优选用两个版本的源代码进行对比,分别为第一版本和第二版本。
[0016]步骤二:依据版本号获取待对比的不同版本的源代码文件:依据源代码的版本号,从文件版本管理工具中获取待对比的不同版本的源代码文件,所述文件版本管理工具可选用SVN(subversion)或GIT,本专利技术的实施例一中,文件版本管理工具优选用SVN(subversion),在SVN(subversion)中获取第一版本和第二版本的源代码文件。
[0017]步骤三:比较获取的不同版本的源代码文件,获不同版本源代码间的行变更信息,在本实施例中即将第一版本和第二版本的源代码文本进行比较,获取第一版本和第二版本
的代码行的变更差异信息;步骤四:读取获取的各版本源代码文件,获取各版本源代码文件的行类别信息:首先获取待比较的各个版本源代码文件的扩展名;然后依据扩展名使用不同的正则表达方式分析其所属源代码的文本信息;获取每行代码的行类别信息:行类别信息包括注释行、空白行和代码行;在本专利技术实施例一中即将第一版本和第二版本的源代码文件依据扩展名使用不同的正则表达方式分析其所属源代码的文本信息,然后分别获取第一版本和第二版本源代码中行类别信息,即注释行的行数范围、空白行的行数范围和代码行的行数范围。
[0018]步骤五:读取获取的各版本源代码文件,获取各版本源代码文件的版本信息:读取截止到该版本号的源代码文件的提交记录,获取源代码文件中每行代码的版本信息:所述版本信息包括每行代码的:作者、时间戳和工具分配的版本号。
[0019]步骤六:依据行变更信息和版本号,匹配出源代码文件中变化行的行类别信息和版本信息并输出:依据获取的行变更信息,通过版本号在行类别信息中匹配出变化的行类别,在版本信息中匹配出变化的版本信息。
[0020]通过使用本实施例一所提供的一种获取代码精确变更信息的方法,可在源代码版本迭代过程中通过分析不同版本的源代码文本找出行变更信息,然后利用行变更信息为索引,找出源代码在版本迭代过程中变化行的行类别、作者、时间戳和工具分配版本号的变化信息,有利于分类统计代码行的变更,有利于确定源代码缺陷单的变更信息。
[0021]实施例二:基于与实施例一相同的专利技术构思,本专利技术提供了一种获取代码精确变更信息的系统,用于执行实施例一任一项所述的方法,如图2所示,包括依次连接的:变更差异获取模块,用于获不同版本源代码间的行变更信息;行类别获取模块,用获取各版本源代码文件的行类别信息;版本信息获取模块,用于获取各版本源代码文件的版本信息;和变更信息计算模块,用于依据行变更信息匹配行类别信息和版本信息,并输出。
[0022]以上所述仅是本专利技术的优选实施方式,应当指出,对于本
的普通技术人员来说,在不脱离本专利技术技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本专利技术的保护范围。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种获取代码精确变更信息的方法,其特征在于:包括如下步骤:确定待对比的不同版本的源代码版本号;依据版本号获取待对比的不同版本的源代码文件;比较获取的不同版本的源代码文件,获取不同版本源代码间的行变更信息;读取获取的各版本源代码文件,获取各版本源代码文件的行类别信息;读取获取的各版本源代码文件,获取各版本源代码文件的版本信息;依据行变更信息和版本号,匹配出源代码文件中变化行的行类别信息和版本信息并输出。2.根据权利要求1所述的一种获取代码精确变更信息的方法,其特征在于:确定待对比的不同的版本的源代码版本号的依据包括时间戳。3.根据权利要求1所述的一种获取代码精确变更信息的方法,其特征在于:依据版本号在文件版本管理工具中获取待对比的不同版本的源代码文件。4.根据权利要求1所述的一种获取代码精确变更信息的方法,其特征在于:读取获取的各版本源代码文件,获取各版本源代码文件的行类别信息包括如下步骤:获取源代码文件的扩展名,依据文件的扩展名,使用不同的正则表达式分析源代码文件,获取源代码文件中每行代码的行类别信息。5.根据权利要求1所述的一种获取代码...

【专利技术属性】
技术研发人员:王落刘坤
申请(专利权)人:徐工汉云技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1