CN114371869A - 一种获取代码精确变更信息的方法与系统 - Google Patents

一种获取代码精确变更信息的方法与系统 Download PDF

Info

Publication number
CN114371869A
CN114371869A CN202111651883.9A CN202111651883A CN114371869A CN 114371869 A CN114371869 A CN 114371869A CN 202111651883 A CN202111651883 A CN 202111651883A CN 114371869 A CN114371869 A CN 114371869A
Authority
CN
China
Prior art keywords
version
information
source code
line
change information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111651883.9A
Other languages
English (en)
Inventor
王落
刘坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
XCMG Hanyun Technologies Co Ltd
Original Assignee
XCMG Hanyun Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by XCMG Hanyun Technologies Co Ltd filed Critical XCMG Hanyun Technologies Co Ltd
Priority to CN202111651883.9A priority Critical patent/CN114371869A/zh
Publication of CN114371869A publication Critical patent/CN114371869A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

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

Claims (8)

1.一种获取代码精确变更信息的方法,其特征在于:包括如下步骤:
确定待对比的不同版本的源代码版本号;
依据版本号获取待对比的不同版本的源代码文件;
比较获取的不同版本的源代码文件,获取不同版本源代码间的行变更信息;
读取获取的各版本源代码文件,获取各版本源代码文件的行类别信息;
读取获取的各版本源代码文件,获取各版本源代码文件的版本信息;
依据行变更信息和版本号,匹配出源代码文件中变化行的行类别信息和版本信息并输出。
2.根据权利要求1所述的一种获取代码精确变更信息的方法,其特征在于:确定待对比的不同的版本的源代码版本号的依据包括时间戳。
3.根据权利要求1所述的一种获取代码精确变更信息的方法,其特征在于:
依据版本号在文件版本管理工具中获取待对比的不同版本的源代码文件。
4.根据权利要求1所述的一种获取代码精确变更信息的方法,其特征在于:
读取获取的各版本源代码文件,获取各版本源代码文件的行类别信息包括如下步骤:
获取源代码文件的扩展名,依据文件的扩展名,使用不同的正则表达式分析源代码文件,获取源代码文件中每行代码的行类别信息。
5.根据权利要求1所述的一种获取代码精确变更信息的方法,其特征在于:
读取获取的各版本源代码文件,获取各版本源代码文件的版本信息包括如下步骤:
读取截止到该版本号的源代码文件的提交记录,获取源代码文件中每行代码的版本信息。
6.根据权利要求1所述的一种获取代码精确变更信息的方法,其特征在于:
所述源代码文件的版本信息包括:作者、时间戳和工具分配的版本号。
7.根据权利要求1所述的一种获取代码精确变更信息的方法,其特征在于:
依据行变更信息和版本号,匹配出源代码文件中变化行的行类别信息和版本信息并输出,包括如下步骤:
依据行变更信息,使用版本号,在行类别信息中匹配出变化的行类别,在版本信息中匹配出变化的版本信息,并输出。
8.一种获取代码精确变更信息的系统,其特征在于:所述系统执行权利要求1-7任一项所述的方法,包括依次连接的:
变更差异获取模块,用于获不同版本源代码间的行变更信息;
行类别获取模块,用获取各版本源代码文件的行类别信息;
版本信息获取模块,用于获取各版本源代码文件的版本信息;
和变更信息计算模块,用于依据行变更信息匹配行类别信息和版本信息,并输出。
CN202111651883.9A 2021-12-31 2021-12-31 一种获取代码精确变更信息的方法与系统 Pending CN114371869A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111651883.9A CN114371869A (zh) 2021-12-31 2021-12-31 一种获取代码精确变更信息的方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111651883.9A CN114371869A (zh) 2021-12-31 2021-12-31 一种获取代码精确变更信息的方法与系统

Publications (1)

Publication Number Publication Date
CN114371869A true CN114371869A (zh) 2022-04-19

Family

ID=81142903

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111651883.9A Pending CN114371869A (zh) 2021-12-31 2021-12-31 一种获取代码精确变更信息的方法与系统

Country Status (1)

Country Link
CN (1) CN114371869A (zh)

Similar Documents

Publication Publication Date Title
CN111127068B (zh) 一种工程量清单自动组价方法和装置
CN111400354B (zh) 基于mes系统的机床制造bom存储查询及树形结构构建方法
CN111177134A (zh) 适用于海量数据的数据质量分析方法、装置、终端及介质
CN107844414A (zh) 一种基于缺陷报告分析的跨项目、并行化缺陷定位方法
CN111125116B (zh) 定位业务表中代码字段及对应代码表的方法及系统
CN104756113A (zh) 用于检测数据源中的偏差的方法、设备和计算机程序
CN112800044A (zh) 数据质量判定及监测方法、管理系统、存储介质、终端
CN113836038A (zh) 测试数据构造方法、装置、设备及存储介质
CN113821554B (zh) 一种实现异构数据库数据采集的方法
CN103729349A (zh) 一种对翻译质量影响因素的分析方法
CN110806977A (zh) 基于产品需求的测试用例集生成方法、装置及电子设备
CN114153496A (zh) 一种基于区块链的高速可并行代码相似度对比方法和系统
CN114371869A (zh) 一种获取代码精确变更信息的方法与系统
CN112416904A (zh) 电力数据规范化处理方法及装置
CN117501275A (zh) 用于分析由大量单独消息组成的数据的方法、计算机程序产品和计算机系统
CN112505337B (zh) 一种辅助分析样品的数据处理方法
Bertalan et al. Using Transformer Models and Textual Analysis for Log Parsing
CN114201545B (zh) 数据处理方法、装置、终端设备及存储介质
CN117453805B (zh) 一种不确定性数据的可视化分析方法
CN118053007B (zh) 一种基于大数据的标准内容比对展示方法及系统
CN112559195B (zh) 数据库死锁的检测方法、装置、测试终端及介质
CN118194015A (zh) 基于knn的铝模板特征识别方法、装置、计算机设备及存储介质
CN117931275A (zh) 基于机器学习的代码合并冲突自动消解方法
CN103744842A (zh) 一种翻译错误的数据分析方法
CN114968258A (zh) 面向代码溯源的克隆代码继承关系判定方法、系统及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination