2012 · 114 citations · 23 references
ComputingComputer ScienceChange MeasurementSoftware EngineeringTeamworkSoftware MaintenanceSoftware Project ManagementBranch AnalysisScenariosSource Code Change Analysis
Branches within source code management systems (SCMs) allow a software project to divide work among its teams for concurrent development by isolating changes. However, this benefit comes with several costs: increased time required for changes to move through the system and pain and error potential when integrating changes across branches. In this paper, we present the results of a survey to characterize how developers use branches in a large industrial project and common problems that they face. One of the major problems mentioned was the long delay that it takes changes to move from one team to another, which is often caused by having too many branches (branchmania). To monitor branch health, we introduce a novel what-if analysis to assess alternative branch structures with respect to two properties, isolation and liveness. We demonstrate with several scenarios how our what-if analysis can support branch decisions. By removing high-cost-low-benefit branches in Windows based on our what-if analysis, changes would each have saved 8.9 days of delay and only introduced 0.04 additional conflicts on average.
23
The promises and perils of mining git
Christian Bird, Peter C. Rigby, Earl T. Barr et al. · 2009 · 310 citations · Full text
Jacob T. Biehl, Mary Czerwinski, Greg Smith et al. · 2007 · 260 citations
The Social science encyclopedia
Choice Reviews Online · 2005 · 241 citations