Continuously mining distributed version control systems: an empirical study of how Linux uses Git

Distributed version control systems (D-VCSs —such as git and mercurial ) and their hosting services (such as Github and Bitbucket) have revolutionalized the way in which developers collaborate by allowing them to freely exchange and integrate code changes in a peer-to-peer fashion. However, this fle...

Full description

Saved in:
Bibliographic Details
Published in:Empirical software engineering : an international journal Vol. 21; no. 1; pp. 260 - 299
Main Authors: German, Daniel M., Adams, Bram, Hassan, Ahmed E.
Format: Journal Article
Language:English
Published: New York Springer US 01.02.2016
Springer Nature B.V
Subjects:
ISSN:1382-3256, 1573-7616
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:Distributed version control systems (D-VCSs —such as git and mercurial ) and their hosting services (such as Github and Bitbucket) have revolutionalized the way in which developers collaborate by allowing them to freely exchange and integrate code changes in a peer-to-peer fashion. However, this flexibility comes at a price: code changes are hard to track because of the proliferation of code repositories and because developers modify (“rebase”) and filter (“cherry-pick”) the history of these changes to streamline their integration into the repositories of other developers. As a consequence, researchers and practitioners, who typically only consider the (cleaned up) history in the official project repository, are unaware of important elements and activities in the collaborative software development process. In this paper, we present a method that continuously mines all known D-VCSs of a software project to uncover the complete development history of a project. We use this method to (1) show the divergence between the code history development in the official Linux kernel repository and the complete kernel development history, and (2) to investigate the characteristics of the ecosystem of git repositories of the Linux kernel. Finally, we discuss how continuous mining could be adopted by current D-VCS hosting services.
Bibliography:ObjectType-Article-1
SourceType-Scholarly Journals-1
ObjectType-Feature-2
content type line 14
content type line 23
ISSN:1382-3256
1573-7616
DOI:10.1007/s10664-014-9356-2