[发明专利]一种基于代码提交历史的Git仓库相似性检测方法有效
申请号: | 201711383993.5 | 申请日: | 2017-12-20 |
公开(公告)号: | CN108170469B | 公开(公告)日: | 2021-06-11 |
发明(设计)人: | 张卫丰;申玉江;诸葛文杜 | 申请(专利权)人: | 南京邮电大学 |
主分类号: | G06F8/77 | 分类号: | G06F8/77 |
代理公司: | 南京知识律师事务所 32207 | 代理人: | 李吉宽 |
地址: | 210003 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 代码 提交 历史 git 仓库 相似性 检测 方法 | ||
本发明公开了一种基于代码提交历史的Git仓库相似性检测方法,首先需要搭建Git环境,然后获取项目,将需要检测分析的项目通过url从远程服务器上的Git仓库中拉取下来,存储到本地Git仓库;通过Git的版本历史记录功能,获取项目的所有历史版本的文件内容,然后通过文件相似性分析算法检测项目的每个相邻版本之间的相似性,判断项目提交者的工作量;同时还可以检测不同仓库中同一需求项目之间的相似性,通过比对项目中每个文件的MD5值以及对项目文件的相似性分析,判断项目提交者自主完成的可信度;最后根据项目真实性计算公式,判断项目的来源。本发明可以简单、快速和有效地检测Git仓库中项目的真实性,从而判断该项目是原创、借鉴还是抄袭。
技术领域
本发明属于互联网和软件工程领域,具体涉及一种基于代码提交历史的Git仓库相似性检测方法。
背景技术
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。每一个Git克隆都是一个完整的文件库,含有全部历史记录和修订追踪能力。其最大特色就是“分支”及“合并”操作快速、简便;支持离线工作,Git是整个项目范围的原子提交,而且Git中的每个工作树都包含一个具有完整项目历史的仓库。
Git是一种非常流行的分布式版本控制系统,和其他版本控制系统相比,主要是和SVN相比较,Git的主要优势在于以下几个方面:
1)版本库本地化,支持离线提交,相对独立不影响协同开发。每个开发者都拥有自己的版本控制库,在自己的版本库上可以任意的执行提交代码、创建分支等行为。例如,开发者认为自己提交的代码有问题,因为版本库是自己的,回滚历史、反复提交、归并分支并不会影响到其他开发者。
2)更少的“仓库污染”。Git对于每个工程只会产生一个.git目录,这个工程所有的版本控制信息都在这个目录中,不会像SVN那样在每个目录下都产生.svn目录。
3)把内容按元数据方式存储,完整克隆版本库。所有版本信息位于.git目录中,它是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签、分支、版本记录等。
4)支持快速切换分支方便合并,比较合并性能好。在同一目录下即可切换不同的分支,方便合并,且合并文件速度比SVN快。
5)分布式版本库,无单点故障,内容完整性好。内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
Git保留了每次代码演化的全部历史记录,方便回退到历史版本查看用户需要的内容。
发明内容
本发明的目的是通过设计并实现一种基于代码提交历史的Git仓库相似性检测方法,首先通过检测同一仓库中同一项目的历史提交版本之间的相似性,判断提交者的工作量;然后检测不同仓库中同一需求的项目之间的相似性,判断项目提交者自主完成的可信度。综合上述两步,检测Git仓库中项目的真实性,从而判断该项目是原创、借鉴还是抄袭。
为实现上述目的,本发明采用的技术方案为一种基于代码提交历史的Git仓库相似性检测方法,包含以下步骤:
步骤1:搭建和配置Git环境,下载Git软件并安装,配置环境变量,确认安装成功;
步骤2:获取项目历史版本提交记录编号;
步骤3:进行同一仓库项目历史版本之间的相似性分析;
步骤4:进行不同仓库同一需求项目之间的相似性分析;
步骤5:分析项目是原创、借鉴或者抄袭。
进一步,步骤2具体包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711383993.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种自动检测注释和代码一致性的方法及其系统
- 下一篇:SOC系统按位写装置