一种贡献代码数统计方法及装置制造方法及图纸

技术编号:20221604 阅读:19 留言:0更新日期:2019-01-28 20:10
本发明专利技术提供一种贡献代码数统计方法及装置,涉及统计技术领域,获取第一目标统计时间段内的多个单次提交的目标代码日志,统计多个单次提交的目标代码日志中的代码变更数;过滤掉多个单次提交的目标代码日志中添加行数超过预设行数阈值的目标代码日志,统计过滤处理后的多个目标代码日志中代码变更数所涉及的开发人员代码行数变动明细,确定第一目标统计时间段内的各开发人员贡献代码总行数。该代码行数变动明细中包括:新增代码行数、修改自己代码行数、修改他人代码行数、删除自己代码行数、删除他人代码行数、代码被他人修改行数等多种内容,通过细化代码统计粒度,使得统计的开发人员贡献代码数更加准确。

【技术实现步骤摘要】
一种贡献代码数统计方法及装置
本专利技术涉及统计
,尤其是涉及一种贡献代码数统计方法及装置。
技术介绍
一个项目通常是由大量代码构成的,统计一个稳定项目中每个开发人员贡献的有效代码数,可以体现出开发人员的编码效率和质量。管理者可以参考这类统计数据考核工作。开发人员可以了解自己的代码质量和编码习惯,做出调整和改进。因此,随着项目的不断扩展,对于项目代码的数据统计变得越来越重要。目前,大多数的IT公司使用版本管理工具托管项目代码,然而代码管理工具无法快速、客观、全面地获取源代码的统计信息。随着项目不断扩展,没有全面、客观的操作统计数据,无法直观地体现项目成长的过程和趋势,粗略地统计各个开发人员提交数量或项目代码增长,无法评估开发人员对项目真实的贡献。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种贡献代码数统计方法及装置,能够过滤第三方类库引用造成的较大统计误差,并通过细化代码统计粒度,使得统计的开发人员贡献代码数更加精确,从而实现开发人员对项目的真实贡献的准确评估。第一方面,本专利技术实施例提供了一种贡献代码数统计方法,包括:获取第一目标统计时间段内的多个单次提交的目标代码日志;统计所述多个单次提交的目标代码日志中的代码变更数;所述代码变更数包括:添加行数、删除行数或修改行数;过滤掉所述多个单次提交的目标代码日志中添加行数超过预设行数阈值的目标代码日志;统计所述过滤处理后的多个目标代码日志中代码变更数所涉及的开发人员代码行数变动明细;所述代码行数变动明细至少包括:新增代码行数、修改自己代码行数、修改他人代码行数、删除自己代码行数、删除他人代码行数、代码被他人修改行数、代码被他人删除行数、个人代码总添加行数及个人代码总减少行数中的多种;基于多个目标代码日志中代码变更数所涉及的开发人员代码行数变动明细,确定所述第一目标统计时间段内的各开发人员贡献代码总行数。结合第一方面,本专利技术实施例提供了第一方面的第一种可能的实施方式,其中,所述统计所述过滤处理后的多个目标代码日志中代码变更数所涉及的开发人员代码行数变动明细,包括:将相邻两次提交的目标代码日志进行数据比对,得到后一次提交的目标代码日志的新增代码行数、修改自己代码行数、修改他人代码行数、删除自己代码行数、删除他人代码行数、代码被他人修改行数及代码被他人删除行数;将所述新增代码行数与所述修改他人代码行数相加,得到后一次提交的目标代码日志的个人代码总添加行数;将所述修改自己代码行数、所述代码被他人修改行数及所述代码被他人删除行数相加,得到后一次提交的目标代码日志的个人代码总减少行数;将多次提交的目标代码日志的所述新增代码行数、所述修改自己代码行数、所述修改他人代码行数、所述删除自己代码行数、所述删除他人代码行数、所述代码被他人修改行数、所述代码被他人删除行数、所述个人代码总添加行数及所述个人代码总减少行数作为所述多个目标代码日志中代码变更数所涉及的开发人员代码行数变动明细。结合第一方面,本专利技术实施例提供了第一方面的第二种可能的实施方式,其中,所述基于多个目标代码日志中代码变更数所涉及的开发人员代码行数变动明细,确定所述第一目标统计时间段内的各开发人员贡献代码总行数,包括:利用每个目标代码日志对应的开发人员的所述个人代码总添加行数减去所述个人代码总减少行数,得到每个所述目标代码日志对应的开发人员的贡献代码总行数;基于多个所述目标代码日志对应的开发人员的贡献代码总行数,确定所述第一目标统计时间段内的各开发人员贡献代码总行数。结合第一方面,本专利技术实施例提供了第一方面的第三种可能的实施方式,其中,在所述基于多个目标代码日志中代码变更数所涉及的开发人员代码行数变动明细,确定所述第一目标统计时间段内的各开发人员贡献代码总行数之后,还包括:基于所述第一目标统计时间段内的各开发人员贡献代码总行数,及上一次项目统计的各开发人员贡献代码总行数,得到所述项目中个人代码贡献总行数;基于所述第一目标统计时间段内的各开发人员贡献代码总行数、所述项目中个人代码贡献总行数及对应开发人员标识,生成统计结果文件,并将所述统计结果文件保存于版本库中。结合第一方面,本专利技术实施例提供了第一方面的第四种可能的实施方式,其中,在所述统计所述多个单次提交的目标代码日志中代码变更数之前,还包括:判断预设版本库中是否存在所述第一目标统计时间段对应的统计结果文件;如果否,则判断所述预设版本库中是否存在与所述第一目标统计时间段重复的时间段所对应的统计结果文件;如果存在,则将第二目标统计时间段内的代码日志作为所述目标代码日志;其中,所述第二目标统计时间段为所述第一目标统计时间段减去所述重复的时间段。结合第一方面,本专利技术实施例提供了第一方面的第五种可能的实施方式,其中,在所述判断预设版本库中是否存在所述第一目标统计时间段对应的统计结果文件之后,还包括:如果是,则将所述统计结果文件中的各开发人员贡献代码总行数,作为所述第一目标统计时间段内的各开发人员贡献代码总行数。结合第一方面,本专利技术实施例提供了第一方面的第六种可能的实施方式,其中,在所述判断预设版本库中是否存在与所述第一目标统计时间段重复的时间段所对应的统计结果文件之后,还包括:如果不存在,则执行步骤:统计所述多个单次提交的目标代码日志中代码变更数。结合第一方面,本专利技术实施例提供了第一方面的第七种可能的实施方式,其中,在所述统计所述多个单次提交的目标代码日志中代码变更数之前,还包括:过滤掉所述多个单次提交的目标代码日志中,包括通过合并操作所提交的代码日志的目标代码日志。第二方面,本专利技术实施例还提供一种贡献代码数统计装置,包括:日志获取模块,用于获取第一目标统计时间段内的多个单次提交的目标代码日志;代码数统计模块,用于统计所述多个单次提交的目标代码日志中代码变更数;所述代码变更数包括:添加行数、删除行数和修改行数;过滤模块,用于过滤掉所述多个单次提交的目标代码日志中代码变更数中,添加行数超过预设行数阈值的目标代码日志;变动明细统计模块,用于统计所述过滤处理后的多个目标代码日志中代码变更数所涉及的开发人员代码行数变动明细;贡献计算模块,基于多个目标代码日志中代码变更数所涉及的开发人员代码行数变动明细,确定所述第一目标统计时间段内的各开发人员贡献代码总行数。第三方面,本专利技术实施例还提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行第一方面及第一方面任一可能的实施方式所述的方法。本专利技术实施例带来了以下有益效果:在本专利技术实施例提供的贡献代码数统计方法中,首先获取第一目标统计时间段内的多个单次提交的目标代码日志,代码日志中记录有对应开发人员的标识和代码内容;然后统计多个单次提交的目标代码日志中的代码变更数;其中,代码变更数包括:添加行数、删除行数、修改行数三种类型;过滤掉多个单次提交的目标代码日志中添加行数超过预设行数阈值的目标代码日志,以避免将第三方类库中的代码行数统计成有效代码,减少统计结果的偏差。进一步通过统计过滤处理后的多个目标代码日志中代码变更数所涉及的开发人员代码行数变动明细,确定出第一目标统计时间段内的各开发人员贡献代码总行数。该代码行数变动明细中所述代码行数变动明细至少包括:新增代码行数、修改自己代码行数、修改他人代码本文档来自技高网...

【技术保护点】
1.一种贡献代码数统计方法,其特征在于,包括:获取第一目标统计时间段内的多个单次提交的目标代码日志;统计所述多个单次提交的目标代码日志中的代码变更数;所述代码变更数包括:添加行数、删除行数或修改行数;过滤掉所述多个单次提交的目标代码日志中添加行数超过预设行数阈值的目标代码日志;统计所述过滤处理后的多个目标代码日志中代码变更数所涉及的开发人员代码行数变动明细;所述代码行数变动明细至少包括:新增代码行数、修改自己代码行数、修改他人代码行数、删除自己代码行数、删除他人代码行数、代码被他人修改行数、代码被他人删除行数、个人代码总添加行数及个人代码总减少行数中的多种;基于多个目标代码日志中代码变更数所涉及的开发人员代码行数变动明细,确定所述第一目标统计时间段内的各开发人员贡献代码总行数。

【技术特征摘要】
1.一种贡献代码数统计方法,其特征在于,包括:获取第一目标统计时间段内的多个单次提交的目标代码日志;统计所述多个单次提交的目标代码日志中的代码变更数;所述代码变更数包括:添加行数、删除行数或修改行数;过滤掉所述多个单次提交的目标代码日志中添加行数超过预设行数阈值的目标代码日志;统计所述过滤处理后的多个目标代码日志中代码变更数所涉及的开发人员代码行数变动明细;所述代码行数变动明细至少包括:新增代码行数、修改自己代码行数、修改他人代码行数、删除自己代码行数、删除他人代码行数、代码被他人修改行数、代码被他人删除行数、个人代码总添加行数及个人代码总减少行数中的多种;基于多个目标代码日志中代码变更数所涉及的开发人员代码行数变动明细,确定所述第一目标统计时间段内的各开发人员贡献代码总行数。2.根据权利要求1所述的方法,其特征在于,所述统计所述过滤处理后的多个目标代码日志中代码变更数所涉及的开发人员代码行数变动明细,包括:将相邻两次提交的目标代码日志进行数据比对,得到后一次提交的目标代码日志的新增代码行数、修改自己代码行数、修改他人代码行数、删除自己代码行数、删除他人代码行数、代码被他人修改行数及代码被他人删除行数;将所述新增代码行数与所述修改他人代码行数相加,得到后一次提交的目标代码日志的个人代码总添加行数;将所述修改自己代码行数、所述代码被他人修改行数及所述代码被他人删除行数相加,得到后一次提交的目标代码日志的个人代码总减少行数;将多次提交的目标代码日志的所述新增代码行数、所述修改自己代码行数、所述修改他人代码行数、所述删除自己代码行数、所述删除他人代码行数、所述代码被他人修改行数、所述代码被他人删除行数、所述个人代码总添加行数及所述个人代码总减少行数作为所述多个目标代码日志中代码变更数所涉及的开发人员代码行数变动明细。3.根据权利要求2所述的方法,其特征在于,所述基于多个目标代码日志中代码变更数所涉及的开发人员代码行数变动明细,确定所述第一目标统计时间段内的各开发人员贡献代码总行数,包括:利用每个目标代码日志对应的开发人员的所述个人代码总添加行数减去所述个人代码总减少行数,得到每个所述目标代码日志对应的开发人员的贡献代码总行数;基于多个所述目标代码日志对应的开发人员的贡献代码总行数,确定所述第一目标统计时间段内的各开发人员贡献代码总行数。4.根据权利要求1-3任一项所述的方法,其特征在于,在所述基于多个目标代码日志中代码变更数所涉及的开发人员代码行数变动明细,确定所述第一目标统计时间段...

【专利技术属性】
技术研发人员:夏玮范渊
申请(专利权)人:杭州安恒信息技术股份有限公司
类型:发明
国别省市:浙江,33

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

1