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

被引:21
|
作者
German, Daniel M. [1 ]
Adams, Bram [2 ]
Hassan, Ahmed E. [3 ]
机构
[1] Univ Victoria, Victoria, BC, Canada
[2] Polytech Montreal, Montreal, PQ, Canada
[3] Queens Univ, Kingston, ON, Canada
关键词
Mining software repositories; Distributed version control; Rebasing; Empirical software engineering; Measuring bias; Linux; Open source development;
D O I
10.1007/s10664-014-9356-2
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 development history 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.
引用
收藏
页码:260 / 299
页数:40
相关论文
共 50 条
  • [1] Continuously mining distributed version control systems: an empirical study of how Linux uses Git
    Daniel M. German
    Bram Adams
    Ahmed E. Hassan
    Empirical Software Engineering, 2016, 21 : 260 - 299
  • [2] Analysis of Implementations to Secure Git for Use as an Encrypted Distributed Version Control System
    Shirey, Russell G.
    Hopkinson, Kenneth M.
    Stewart, Kyle E.
    Hodson, Douglas D.
    Borghetti, Brett J.
    2015 48TH HAWAII INTERNATIONAL CONFERENCE ON SYSTEM SCIENCES (HICSS), 2015, : 5310 - 5319
  • [3] How Do Centralized and Distributed Version Control Systems Impact Software Changes?
    Brindescu, Caius
    Codoban, Mihai
    Shmarkatiuk, Sergii
    Dig, Danny
    36TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2014), 2014, : 322 - 333
  • [4] How to simplify PLC, control device management with Git version control, auto-backup
    Hoske, Mark T.
    Control Engineering, 2023, 70 (05)
  • [5] ENFORCING ACCESS CONTROL IN DISTRIBUTED VERSION CONTROL SYSTEMS
    Xu, Xin
    Cai, Quanwei
    Lin, Jingqiang
    Pan, Shiran
    Ren, Liangqin
    2019 IEEE INTERNATIONAL CONFERENCE ON MULTIMEDIA AND EXPO (ICME), 2019, : 772 - 777
  • [6] Topology Awareness for Distributed Version Control Systems
    Cesario, Cristiano M.
    Murta, Leonardo G. P.
    THIRTIETH BRAZILIAN SYMPOSIUM ON SOFTWARE ENGINEERING (SBES 2016), 2016, : 143 - 152
  • [7] OPTIMAL CONTROL BY FORCED MOVEMENTS OF SYSTEMS WITH CONTINUOUSLY DISTRIBUTED PARAMETERS
    FILSHTINSKII, LA
    PRIKLADNAYA MATEMATIKA I MEKHANIKA, 1974, 38 (06): : 1056 - 1062
  • [8] Using Linux and Ada in the development of distributed computer control systems
    Alonso, A
    López, R
    de la Puente, JA
    Alvarez, B
    Iborra, A
    NEW TECHNOLOGIES FOR COMPUTER CONTROL 2001, 2002, : 305 - 310
  • [9] Mining and Visualizing Developer Networks from Version Control Systems
    Jermakovics, Andrejs
    Sillitti, Alberto
    Succi, Giancarlo
    PROCEEDINGS OF THE 4TH INTERNATIONAL WORKSHOP ON COOPERATIVE AND HUMAN ASPECTS OF SOFTWARE ENGINEERING (CHASE'11), 2011, : 24 - 31
  • [10] How to communicate when submitting patches: An empirical study of the Linux kernel
    Tan, Xin
    Zhou, Minghui
    Proceedings of the ACM on Human-Computer Interaction, 2019, 3 (CSCW)