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

Conference Paper (2020)
Author(s)

Audris Mockus (The University of Tennessee Knoxville)

Diomidis Spinellis (Athens University of Economics and Business)

Zoe Kotti (Athens University of Economics and Business)

Gabriel John Dusing (The University of Tennessee Knoxville)

Affiliation
External organisation
DOI related publication
https://doi.org/10.1145/3379597.3387499
More Info
expand_more
Publication Year
2020
Language
English
Affiliation
External organisation
Pages (from-to)
513-517
ISBN (electronic)
9781450379571

Abstract

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.

No files available

Metadata only record. There are no files for this record.