Causes of merge conflicts: a case study of ElasticSearch
Paper in proceeding, 2020
We present a case study of the changes - on the code and on the project-level (e.g., feature addition, refactoring, feature improvement) - that lead to conflicts. We analyzed the development history of ElasticSearch, a large open-source project that heavily relies on branching (forking) and merging. We inspected 40 merge conflicts in detail, sampled from 534 conflicts not resolvable by a semi-structured merge tool. On a code (structural) level, we classified the semantics of changes made. On a project-level, we categorized the decisions that motivated these changes. We contribute a categorization of code- and project-level changes and a detailed dataset of 40 conflict resolutions with a description of both levels of changes. Similar to prior studies, most of our conflicts are also small; while our categorization of code-level changes surprisingly differs from that of prior work. Refactoring, feature additions and feature enhancements are the most common causes of merge conflicts, most of which could potentially be avoided with better development tooling.
Author
Wardah Mahmood
University of Gothenburg
Moses Chagama
University of Gothenburg
Thorsten Berger
University of Gothenburg
Regina Hebig
University of Gothenburg
Proceedings of the 14th International Working Conference on Variability Modelling of Software-Intensive Systems
1-9
, ,
Subject Categories
Social Sciences Interdisciplinary
Software Engineering
Information Systemes, Social aspects
DOI
10.1145/3377024.3377047