Abstract
The adoption of distributed version control (DVC ), such as Git and Mercurial, in open-source software (OSS) projects has been explosive. Why is this and how are projects using DVC? This new generation of version control supports two important new features: distributed repositories and histories that preserve branches and merges. Through interviews with lead developers in OSS projects and a quantitative analysis of mined data from the histories of sixty project, we find that the vast majority of the projects now using DVC continue to use a centralized model of code sharing, while using branching much more extensively than before their transition to DVC. We then examine the Linux history in depth in an effort to understand and evaluate how branches are used and what benefits they provide. We find that they enable natural collaborative processes: DVC branching allows developers to collaborate on tasks in highly cohesive branches, while enjoying reduced interference from developers working on other tasks, even if those tasks are strongly coupled to theirs. © 2012 Springer-Verlag Berlin Heidelberg.
Cite
CITATION STYLE
Barr, E. T., Bird, C., Rigby, P. C., Hindle, A., German, D. M., & Devanbu, P. (2012). Cohesive and isolated development with branches. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 7212 LNCS, pp. 316–331). https://doi.org/10.1007/978-3-642-28872-2_22
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.