Peopleware: productive projects and teams
Peopleware: productive projects and teams
Linux as a case study: its extracted software architecture
Proceedings of the 21st international conference on Software engineering
Yesterday, my program worked. Today, it does not. Why?
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Software configuration management: a roadmap
Proceedings of the Conference on The Future of Software Engineering
Parallel changes in large-scale software development: an observational case study
ACM Transactions on Software Engineering and Methodology (TOSEM)
A State-of-the-Art Survey on Software Merging
IEEE Transactions on Software Engineering
Interrupts: Just a Minute Never Is
IEEE Software
Fine Grained Version Control of Configurations in COOP/Orm
ICSE '96 Proceedings of the SCM-6 Workshop on System Configuration Management
Version Sensitive Editing: Change History as a Programming Tool
ECOOP '98 Proceedings of the SCM-8 Symposium on System Configuration Management
A Branching/Merging Strategy for Parallel Software Development
SCM-9 Proceedings of the 9th International Symposium on System Configuration Management
Palantír: raising awareness among configuration management workspaces
Proceedings of the 25th International Conference on Software Engineering
Studying cooperation and conflict between authors with history flow visualizations
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Maintaining mental models: a study of developer work habits
Proceedings of the 28th international conference on Software engineering
Information Needs in Collocated Software Development Teams
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Proceedings of the 2008 international working conference on Mining software repositories
The promises and perils of mining git
MSR '09 Proceedings of the 2009 6th IEEE International Working Conference on Mining Software Repositories
A theory of branches as goals and virtual teams
Proceedings of the 4th International Workshop on Cooperative and Human Aspects of Software Engineering
The effect of branching strategies on software quality
Proceedings of the ACM-IEEE international symposium on Empirical software engineering and measurement
Assessing the value of branches with what-if analysis
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Hi-index | 0.00 |
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.