[发明专利]一种基于代码提交历史的Git仓库相似性检测方法有效

专利信息
申请号: 201711383993.5 申请日: 2017-12-20
公开(公告)号: CN108170469B 公开(公告)日: 2021-06-11
发明(设计)人: 张卫丰;申玉江;诸葛文杜 申请(专利权)人: 南京邮电大学
主分类号: G06F8/77 分类号: G06F8/77
代理公司: 南京知识律师事务所 32207 代理人: 李吉宽
地址: 210003 江苏*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 代码 提交 历史 git 仓库 相似性 检测 方法
【权利要求书】:

1.一种基于代码提交历史的Git仓库相似性检测方法,其特征在于,包含以下步骤:

步骤1:搭建和配置Git环境,下载Git软件并安装,配置环境变量,确认安装成功;

步骤2:获取项目历史版本提交记录编号,具体包括:

步骤21)通过url从远程服务器上的Git仓库中克隆整个项目到本地仓库并初始化该仓库;

步骤22)与本地仓库建立连接并打开该连接;

步骤23)通过Git的log历史记录命令获取所有的历史提交记录集合;

步骤24)遍历步骤23)中获取的集合,获取所有版本的历史提交记录编号;

步骤3:进行同一仓库项目历史版本之间的相似性分析,具体包括:

步骤31)通过新版本的历史提交记录编号获取本次所有提交的修改文件;

步骤32)通过历史版本的历史提交记录编号获取步骤31)获取的修改文件对应的原始文件;

步骤33)对步骤31)和步骤32)获取的两个文件进行diff操作,使用文件相似性分析算法分析比较文件,标记文件内容是相等标记、插入标记或者是删除标记,获取分析结果diff标记集合;

步骤34)遍历步骤33)中获取的diff标记集合,分别统计删除标记、相等标记和插入标记行数,如果遇到删除标记,则记录删除标记的行数并与历史删除记录行数相加;如果遇到相等标记,则记录相等标记行数并与历史相等记录行数相加;如果遇到插入标记,则记录插入标记行数并与历史插入记录行数相加;最后将删除标记行数和相等标记行数相加,作为总行数;

步骤35)通过步骤31)计算文件修改数量,视为工作量;将步骤34)统计的插入行数视为工作量;

步骤4:进行不同仓库同一需求项目之间的相似性分析,

步骤4具体包括以下步骤:

步骤41)首先计算项目中每个文件的MD5值,然后逐一比对文件的MD5值,如果有MD5值相等,则可初步得出判定,该项目为非自主完成;然后逐一检测每一个文件的相似性;

步骤42)对两个文件进行diff标记操作,使用文件相似性分析算法分析比较文件,标记文件内容是相等标记、插入标记或者是删除标记,获取分析结果diff标记集合;

步骤43)遍历步骤42)中获取的diff标记集合,分别统计删除标记、相等标记和插入标记行数,如果遇到删除标记,则记录删除标记的行数并与历史删除记录行数相加;如果遇到相等标记,则记录相等标记行数并与历史相等记录行数相加;如果遇到插入标记,则记录插入标记行数并与历史插入记录行数相加;最后将删除记录行数和相等记录行数相加,作为总行数;

步骤44)使用步骤43)获取的相等行数除以步骤43)获取的总行数作为文件相似性;将所有文件的相似性相加取平均值作为该本次检测的相似性,将所有检测的相似性相加取平均值作为该项目的相似性;

步骤5:分析项目是原创、借鉴或者抄袭,具体包括:

步骤51)如果只经过步骤3分析而没有步骤4分析,首先查看历史记录提交次数,如果历史记录提交次数小于2次,标记原创系数为0.1;如果历史记录提交次数在2-3之间,标记原创系数为0.3;如果历史提交次数在4-5之间,标记原创系数为0.6;如果历史记录提交次数在6-8之间,原创系数为0.8;如果历史记录提交次数超过8次,原创系数为1;然后根据步骤3统计的工作量计算相邻版本之间的工作量差值,如果差值在20以内是正常范围,记录差值分为100;如果差值在20-30之间,记录差值分为95;如果差值在30-45之间,记录差值分为90;如果差值在45-60之间,记录差值分为80;如果差值在60-75之间,记录差值分为70;如果差值在75-90,记录差值分为60;如果差值在90-110,记录差值分为45;如果差值在110-130,记录差值分为30;如果差值在130-160之间,记录差值分为15;如果差值超过160,则记录差值分为0;最后将原创系数乘以差值分的平均分作为真实性结果,如果结果低于40分,则标记为抄袭;如果结果在40-60分之间,标记为借鉴;如果结果在60分以上,标记为原创;

步骤52)如果既有步骤3分析又有步骤4分析,首先将步骤51)计算的真实性结果作为初步真实性结果;然后将步骤4计算的相似性作为项目初步真实性结果系数;最后将初步真实性结果乘以初步真实性结果系数再加上5作为真实性结果,真实性结果计算方法同步骤51)。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201711383993.5/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top