Branch use in practice: a large-scale empirical study of 2,923 projects on GitHub

Weiqin Zou, Weiqiang Zhang, Xin Xia, Reid Holmes, Zhenyu Chen

Research output: Chapter in Book/Report/Conference proceedingConference PaperResearch

17 Citations (Scopus)

Abstract

Branching is often used to help developers work in parallel during distributed software development. Previous studies have examined branch usage in practice. However, most studies perform branch analysis on industrial projects or only a small number of open source software (OSS) systems. There are no broad examinations of how branches are used across OSS communities. Due to the rapidly increasing popularity of collaboration in OSS projects, it is important to gain insights into the practice of branch usage in these communities. In this paper, we performed an empirical study on branch usage for 2,923 projects developed on GitHub. Our work mainly studies the way developers use branches and the effects of branching on the overall productivity of these projects. Our results show that: 1) Most projects use a few branches (<5) during development; 2) Large scale projects tend to use more branches than small scale projects. 3) Branches are mainly used to implement new features, conduct version iteration, and fix bugs. 4) Almost all master branches have been requested by contributors to merge their contributions; 5) There always exists a branch playing a more important role in merging contributions than other branches; 6) Almost all commits of more than 75% branches are included in the master branches; 7) The number of branches used in a project has a positive effect on a project's productivity but the effect size is small, and there is no statistically significantly difference between personal projects and organizational projects.

Original languageEnglish
Title of host publicationProceedings - 19th IEEE International Conference on Software Quality, Reliability and Security, QRS 2019
EditorsBruce McMillin, David Lo
Place of PublicationPiscataway NJ USA
PublisherIEEE, Institute of Electrical and Electronics Engineers
Pages306-317
Number of pages12
ISBN (Electronic)9781728139272
ISBN (Print)9781728139289
DOIs
Publication statusPublished - 2019
EventIEEE International Conference on Software Quality, Reliability and Security 2019 - Sofia, Bulgaria
Duration: 22 Jul 201926 Jul 2019
Conference number: 19th
https://qrs19.techconf.org/

Conference

ConferenceIEEE International Conference on Software Quality, Reliability and Security 2019
Abbreviated titleQRS 2019
Country/TerritoryBulgaria
CitySofia
Period22/07/1926/07/19
Internet address

Keywords

  • branch use
  • exploratory study
  • GitHub

Cite this