支持跨代码仓库的代码统计方法、系统及设备技术方案

技术编号:36406804 阅读:14 留言:0更新日期:2023-01-18 10:15
本发明专利技术提出一种支持跨代码仓库的代码统计方法,包括以下步骤:S1:部署代码统计客户端和服务端,初始化各代码仓库链接信息及其他信息;S2:在各代码仓库间统一软件开发人员身份标识信息;S3:获取软件开发人员未提交代码统计量信息,结合各代码仓库中代码量日志信息,计算代码量统计信息;S4:对外提供代码量统计结果。该方法能够解决软件开发人员在多种或多个代码仓库间统一身份标识的问题、代码仓库仅能统计软件开发人员已提交代码量问题及跨代码仓库代码量统计的问题。本发明专利技术还提出一种支持跨代码仓库的代码统计系统和设备。持跨代码仓库的代码统计系统和设备。持跨代码仓库的代码统计系统和设备。

【技术实现步骤摘要】
支持跨代码仓库的代码统计方法、系统及设备


[0001]本专利技术涉及信息统计
,具体涉及一种支持跨代码仓库的代码统计方法。

技术介绍

[0002]随着信息技术的发展,编程工作产生的代码量指数级提升,为了满足代码管理的需求,陆续产生了多种源代码版本管理软件(又称代码仓库),如Svn、Git、TFS等。通常,这些代码仓库都提供了简单的代码统计功能,例如从时间、项目、人员等不同维度统计源代码的变动行数,以评价软件工程的复杂度及软件开发人员的工作效率。代码仓库的代码量统计过程通常为:软件开发人员提交代码至代码仓库时,代码仓库除了将仓库中的源代码文件替换成软件开发人员新提交的源代码文件之外,还会将软件开发人员该次提交时新增的文件数量、修改的文件数量、删除的文件数量、新增文件所包含的代码行数、修改文件中所变更的代码行数、删除文件所包含的代码行数、提交时间、提交备注等等记录成源代码变更日志,并将此变更日志与代码仓库中该软件开发人员的身份标识进行关联。代码仓库对代码量进行统计时,即将前述所记录的代码变更日志数据进行不同维度的求和计算,形成代码量统计结果。
[0003]上述的代码量统计过程存在诸多局限。首先,通常的代码统计过程仅能统计单一代码仓库中存在的软件项目的代码量。若软件开发人员在某一时期在几种不同的代码仓库中均有提交代码,则需要将该软件开发人员在这几种代码仓库中的身份标识进行统一标签处理,并将这几种代码仓库中的代码量统计结果分别提取后进行求和计算,才能形成该软件开发人员的最终代码量统计结果。因此,需要一种建立跨代码仓库身份映射的方法和系统,以解决不同代码仓库间软件开发人员身份标识统一的问题。
[0004]其次,此统计过程执行的前提为软件开发人员将工作成果提交至代码仓库,其统计结果只能涵盖软件开发人员已提交至代码仓库的代码量,不能涵盖软件开发人员已形成工作成果,但未将代码提交至代码仓库的代码量。因此,此种统计过程的结果数据准确性较差,无法精准评估软件开发人员的工作量和工作效率。
[0005]最后,不同代码仓库的日志记录格式、记录内容各有不同,此种统计过程只适用于对单一的代码仓库中的代码量进行统计,无法进行跨代码仓库的代码量统计。

技术实现思路

[0006]为克服现有技术的不足,本专利技术提出一种支持跨代码仓库的代码统计方法,解决了软件开发人员在多种或多个代码仓库间统一身份标识的问题、解决代码仓库仅能统计软件开发人员已提交代码量问题、解决跨代码仓库代码量统计问题。
[0007]为实现上述目的,本专利技术的一种支持跨代码仓库的代码统计方法,包括以下步骤:S1:部署代码统计客户端和服务端,初始化各代码仓库链接信息及其他信息;S2:在各代码仓库间统一软件开发人员身份标识信息;S3:获取软件开发人员未提交代码统计量信息,结合各代码仓库中代码量日志信
息,计算代码量统计信息;S4:对外提供代码量统计结果。
[0008]进一步地,在步骤S1中,各代码仓库初始化的信息包括服务器地址、IP、所属软件项目、所属IT公司、部门;并将各代码仓库标识为CK1,CK2
……
CKN;当有新的代码仓库加入时,相应添加代码仓库链接信息和对应的代码仓库标识。
[0009]进一步地,在步骤S2中,统一软件开发人员身份标识信息的过程还包括以下步骤:S201:开发人员身份标识管理模块/系统通过操作命令定期获取代码仓库CK1,CK2
……
CKN中的所有软件开发人员的身份标识信息;S202:使用同一身份标签标记同一软件开发人员在不同代码仓库中的身份标识信息,建立软件开发人员身份标签数据集;需要新增软件开发人员身份信息时,首先从代码仓库CK1,CK2
……
CKN中选取需要新增身份信息的一个或多个代码仓库,再通过操作命令发送新增软件开发人员身份信息命令到所选取的代码仓库,进行统一的软件开发人员身份信息新增;需要编辑软件开发人员身份信息时,首先从代码仓库CK1,CK2
……
CKN中选取需要编辑身份信息的一个或多个代码仓库,再通过操作命令发送编辑软件开发人员身份信息命令到所选取的代码仓库,进行统一的软件开发人员身份信息编辑;需要停用软件开发人员身份信息时,首先从代码仓库CK1,CK2
……
CKN中选取需要停用身份信息的一个或多个代码仓库,再通过操作命令发送停用软件开发人员身份信息命令到所选取的代码仓库,进行统一的软件开发人员身份信息停用;S203:将统一的软件开发人员身份标识信息对外发送共享给代码量统计管理模块/系统。
[0010]进一步地,在步骤S3中,获取开发人员未提交代码统计量信息的过程还包括以下步骤:S301:代码统计客户端,记录软件开发人员机器上源代码来源仓库标识CK1,CK2
……
CKN;S302:软件开发人员机器记为机器PCN,获取机器PCN上来源于代码仓库CK1,CK2
……
CKN的源代码的最新版本号,记为版本B1,B2
……
BN;S303:在B1,B2
……
BN中选取一个代码版本号,记为BM,对应的代码仓库记为CKM;S304:查询代码仓库CKM中是否存在版本号为BM的代码,若不存在,获取机器PCN上代码仓库CKM中代码版本号BM之前的一个版本号,记为BM

1,继续查询代码仓库CKM中是否存在版本号为BM

1的代码,重复此过程,直到找到机器PCN上在代码仓库CKM中最后对应的一个代码版本号,记为BZ;S305:将机器PCN上代码仓库CKM中的源代码文件与代码仓库CKM中代码版本号为BZ的代码进行逐文件、逐行比较,记录软件开发人员PC机器上代码文件变动数据和代码行数变动数据;S306:重复步骤S303

步骤S305,直至计算完机器PCN上所有代码仓库中代码量变化数据;S307:将S301

306的统计结果记为未提交的代码统计数据,将原始数据及统计结果数据发送给代码量统计模块/系统。
[0011]进一步地,在步骤S305中,代码文件变动数据的具体比较方法如下:若某文件在机器PCN上存在,在代码仓库CKM中不存在,记为新增文件;若某文件在机器PCN上不存在,在代码仓库CKM中存在,记为删除文件;若某文件在机器PCN和代码仓库CKM中都存在,若文件内容相同,记为未编辑文件;若某文件在机器PCN和代码仓库CKM中都存在,若文件内容不相同,记为编辑文件;将上述步骤计算得到的新增文件、删除文件、编辑文件数量求和统计为新增文件个数、删除文件个数、编辑文件个数。
[0012]进一步地,在步骤S305中,代码行数变动数据的比较方法如下:选取某个修改文件,将PCN上的此文件记为PCX,将对应的代码仓库CKM中的此文件记为CKX,PCX和CKX为两个字符串文本;将PCX文件中的每一行记为字符串序列PCX[K],其中K为正整数,作为此字符串序列的下标,同样的,将CKX中的每一行记为字符串序列CK本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持跨代码仓库的代码统计方法,其特征在于,包括以下步骤:S1:部署代码统计客户端和服务端,初始化各代码仓库链接信息及其他信息;S2:在各代码仓库间统一软件开发人员身份标识信息;S3:获取软件开发人员未提交代码统计量信息,结合各代码仓库中代码量日志信息,计算代码量统计信息;S4:对外提供代码量统计结果。2.根据权利要求1所述的支持跨代码仓库的代码统计方法,其特征在于,在步骤S1中,各所述代码仓库初始化的信息包括服务器地址、IP、所属软件项目、所属IT公司、部门;并将各所述代码仓库标识为CK1,CK2
……
CKN;当有新的代码仓库加入时,相应添加代码仓库链接信息和对应的代码仓库标识。3.根据权利要求2所述的支持跨代码仓库的代码统计方法,其特征在于,在步骤S2中,统一软件开发人员身份标识信息的过程还包括以下步骤:S201:开发人员身份标识管理模块/系统通过操作命令定期获取所述代码仓库CK1,CK2
……
CKN中的所有软件开发人员的身份标识信息;S202:使用同一身份标签标记同一软件开发人员在不同代码仓库中的身份标识信息,建立软件开发人员身份标签数据集;需要新增软件开发人员身份信息时,首先从代码仓库CK1,CK2
……
CKN中选取需要新增身份信息的一个或多个代码仓库,再通过操作命令发送新增软件开发人员身份信息命令到所选取的代码仓库,进行统一的软件开发人员身份信息新增;需要编辑软件开发人员身份信息时,首先从代码仓库CK1,CK2
……
CKN中选取需要编辑身份信息的一个或多个代码仓库,再通过操作命令发送编辑软件开发人员身份信息命令到所选取的代码仓库,进行统一的软件开发人员身份信息编辑;需要停用软件开发人员身份信息时,首先从代码仓库CK1,CK2
……
CKN中选取需要停用身份信息的一个或多个代码仓库,再通过操作命令发送停用软件开发人员身份信息命令到所选取的代码仓库,进行统一的软件开发人员身份信息停用;S203:将统一的软件开发人员身份标识信息对外发送共享给代码量统计管理模块/系统。4.根据权利要求1所述的支持跨代码仓库的代码统计方法,其特征在于,在步骤S3中,获取开发人员未提交代码统计量信息的过程还包括以下步骤:S301:代码统计客户端记录软件开发人员机器上源代码来源仓库标识CK1,CK2
……
CKN;S302:将软件开发人员机器记为机器PCN,获取机器PCN上来源于代码仓库CK1,CK2
……
CKN的源代码的最新版本号,记为版本B1,B2
……
BN;S303:在B1,B2
……
BN中选取一个代码版本号,记为BM,对应的代码仓库记为CKM;S304:查询代码仓库CKM中是否存在版本号为BM的代码,若不存在,获取机器PCN上代码仓库CKM中代码版本号BM之前的一个版本号,记为BM

1,继续查询代码仓库CKM中是否存在版本号为BM

1的代码,重复此过程,直到找到机器PCN上在代码仓库CKM中最后对应的一个代码版本号,记为BZ;S305:将机器PCN上代码仓库CKM中的源代码文件与代码仓库CKM中代码版本号为BZ的
代码进行逐文件、逐行比较,记录软件开发人员PC机器上代码文件变动数据和代码行数变动数据;S306:重复步骤S303

步骤S305,直至计算完机器PCN上所有代码仓库中代码量变化数据;S307:将S301

306的统计结果记为未提交的代码统计数据,将原始数据及统计结果数据发送给代码量统计模块/系统。5.根据权利要求4所述的支持跨代码仓库的代码统计方法,其特征在于,在步骤S305中,代码文件变动数据的具体比较方法如下:若某文件在机器PCN上存在,在代码仓库CKM中不存在,记为新增文件;若某文件在机器PCN上不存在,在代码仓库CKM中存在,记为删除文件;若某文件在机器PCN和代码仓库CKM中都存在,若文件内容相同,记为未编辑文件;若某文件在机器PCN和代码仓库CKM中都存在,若文件...

【专利技术属性】
技术研发人员:徐力军朱礼伟单大伟
申请(专利权)人:南京易联阳光信息技术股份有限公司
类型:发明
国别省市:

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

1