A Complete Set of Related Git Repositories Identified via Community Detection Approaches Based on Shared Commits

A Complete Set of Related Git Repositories Identified via Community Detection Approaches Based on Shared Commits
复制标题

基于共享提交的社区检测方法识别出的一整套相关Git存储库

DOI:
--
复制
发表时间:
2020
期刊:
IEEE Working Conference on Mining Software Repositories
影响因子:
--
通讯作者:
G. J. Dusing
G. J. Dusing
中科院分区:
--
文献类型:
--
作者:
A. Mockus;D. Spinellis;Zoe Kotti;G. J. Dusing

文献摘要

被引文献

相似文献

为了了解整个开源软件的状态和演变,我们需要在一组不同的软件项目上处理一个。目前,大多数开源项目都利用Git,这是一个分布式版本控制系统,允许轻松创建克隆,并产生了许多存储库,这些存储库几乎完全基于某些父母存储库。 GIT提交不太可能获得农产品,并代表一种分组克隆存储库的方法。我们使用包含大约2b consits和100m存储库的代码基础架构世界来创建和共享此类地图。我们发现,最大的群体包含近1400万个存储库,其中大多数彼此无关。事实证明,开发人员可以将git对象推向任意存储库或从无关存储库中拉出对象,从而链接无关的存储库。为了解决这个问题,我们将卢旺社区检测算法应用于这个非常大的图表,该图由提交与项目之间的链接组成。该方法成功地减少了大型互联项目,其中包含40万个存储库的高度相互联系的项目。我们希望所得的相关项目的地图以及处理非常大图的工具和方法将用作采矿软件项目和其他应用程序的参考集。需要进一步的工作来确定由共享提交和其他关系引起的项目之间的不同类型的关系,例如通过共享源代码或类似的文件名。
In order to understand the state and evolution of the entirety of open source software we need to get a handle on the set of distinct software projects. Most of open source projects presently utilize Git, which is a distributed version control system allowing easy creation of clones and resulting in numerous repositories that are almost entirely based on some parent repository from which they were cloned. Git commits are unlikely to get produce and represent a way to group cloned repositories. We use World of Code infrastructure containing approximately 2B commits and 100M repositories to create and share such a map. We discover that the largest group contains almost 14M repositories most of which are unrelated to each other. As it turns out, the developers can push git object to an arbitrary repository or pull objects from unrelated repositories, thus linking unrelated repositories. To address this, we apply Louvain community detection algorithm to this very large graph consisting of links between commits and projects. The approach successfully reduces the size of the megacluster with the largest group of highly interconnected projects containing under 400K repositories. We expect that the resulting map of related projects as well as tools and methods to handle the very large graph will serve as a reference set for mining software projects and other applications. Further work is needed to determine different types of relationships among projects induced by shared commits and other relationships, for example, by shared source code or similar filenames.