Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3377024.3377047acmotherconferencesArticle/Chapter ViewAbstractPublication PagesvamosConference Proceedingsconference-collections
research-article

Causes of merge conflicts: a case study of ElasticSearch

Published: 06 February 2020 Publication History

Abstract

Software branching and merging allows collaborative development and creating software variants, commonly referred to as clone & own. While simple and cheap, a trade-off is the need to merge code and to resolve merge conflicts, which frequently occur in practice. When resolving conflicts, a key challenge for developer is to understand the changes that led to the conflict. While merge conflicts and their characteristics are reasonably well understood, that is not the case for the actual changes that cause them.
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.

References

[1]
[n.d.]. Online Appendix. https://bitbucket.org/easelab/elasticsearchstudy.
[2]
Hadil Abukwaik, Andreas Burger, Berima Andam, and Thorsten Berger. 2018. Semi-automated feature traceability with embedded annotations. In ICSME.
[3]
Paola Accioly, Paulo Borba, and Guilherme Cavalcanti. 2018. Understanding semi-structured merge conflict characteristics in open-source java projects. Empirical Software Engineering 23, 4 (2018), 2051--2085.
[4]
Berima Andam, Andreas Burger, Thorsten Berger, and Michel Chaudron. 2017. FLOrIDA: Feature LOcatIon DAshboard for Extracting and Visualizing Feature Traces. In VaMoS.
[5]
Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. 2013. Feature-Oriented Software Product Lines. Springer.
[6]
Sven Apel, Jörg Liebig, Benjamin Brandl, Christian Lengauer, and Christian Kästner. 2011. Semistructured Merge: Rethinking Merge in Revision Control Systems. In ESEC/FSE. ACM, 190--200.
[7]
Wesley K. G. Assunção, Roberto E. Lopez-Herrejon, Lukas Linsbauer, Silvia R. Vergilio, and Alexander Egyed. 2017. Reengineering Legacy Applications into Software Product Lines: A Systematic Mapping. Empirical Software Engineering 22, 6 (2017), 2972--3016.
[8]
Thorsten Berger, Ralf Rublack, Divya Nair, Joanne M. Atlee, Martin Becker, Krzysztof Czarnecki, and Andrzej Wasowski. 2013. A Survey of Variability Modeling in Industrial Practice. In VaMoS.
[9]
Thorsten Berger, Jan-Philipp Steghöfer, Tewfik Ziadi, Jacques Robin, and Jabier Martinez. 2019. The State of Adoption and the Challenges of Systematic Variability Management in Industry. Empirical Software Engineering (2019). Preprint.
[10]
Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin. 2011. Proactive Detection of Collaboration Conflicts. In ESEC/FSE. New York, NY, USA.
[11]
John Businge, Openja Moses, Sarah Nadi, Engineer Bainomugisha, and Thorsten Berger. 2018. Clone-Based Variability Management in the Android Ecosystem. In ICSME.
[12]
Guilherme Cavalcanti, Paulo Borba, and Paola Accioly. 2017. Evaluating and Improving Semistructured Merge. OOPSLA (Oct. 2017).
[13]
DB-Engines. 2019. Ranking of Search Engines. https://db-engines.com/en/ranking/search+engine.
[14]
Gleiph Ghiotto Lima de Menezes. 2016. On the nature of software merge conflicts. Ph.D. Dissertation. Federal Fluminense University.
[15]
Danny Dig, Tien N Nguyen, and Ralph Johnson. 2006. Refactoring-aware software configuration management. Technical Report UIUCDCS.
[16]
Yael Dubinsky, Julia Rubin, Thorsten Berger, Slawomir Duszynski, Martin Becker, and Krzysztof Czarnecki. 2013. An Exploratory Study of Cloning in Industrial Software Product Lines. In CSMR.
[17]
Elastic. 2017. Getting Started. https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started.html.
[18]
Sina Entekhabi, Anton Solback, Jan-Philipp Steghöfer, and Thorsten Berger. 2019. Visualization of Feature Locations with the Tool FeatureDashboard. In SPLC.
[19]
Tammo Freese. 2006. Refactoring-aware version control. In ICSE.
[20]
Sergio Garcia, Daniel Strueber, Davide Brugali, Alessandro Di Fava, Philipp Schillinger, Patrizio Pelliccione, and Thorsten Berger. 2019. Variability Modeling of Service Robots: Experiences and Challenges. In VaMoS.
[21]
Gleiph Ghiotto, Leonardo Murta, Márcio Barros, and André van der Hoek. 2018. On the Nature of Merge Conflicts: a Study of 2,731 Open Source Java Projects Hosted by GitHub. IEEE Transactions on Software Engineering 99, 1 (2018), 1--25.
[22]
G. Gousios, M. A. Storey, and A. Bacchelli. 2016. Work Practices and Challenges in Pull-Based Development: The Contributor's Perspective. In ICSE.
[23]
Georgios Gousios, Andy Zaidman, Margaret-Anne Storey, and Arie van Deursen. 2015. Work Practices and Challenges in Pull-based Development: The Integrator's Perspective. In ICSE.
[24]
M. L. Guimarães and A. R. Silva. 2012. Improving early detection of software merge conflicts. In ICSE.
[25]
Anja Guzzi, Alberto Bacchelli, Yann Riche, and Arie van Deursen. 2015. Supporting Developers' Coordination in the IDE (CSCW '15).
[26]
Abram Hindle. 2010. Software process recovery: recovering process from artifacts. In WCRE.
[27]
Wenbin Ji, Thorsten Berger, Michal Antkiewicz, and Krzysztof Czarnecki. 2015. Maintaining Feature Traceability with Embedded Annotations. In SPLC.
[28]
Bakhtiar Khan Kasi and Anita Sarma. 2013. Cassandra: Proactive Conflict Minimization Through Optimized Task Scheduling. In ICSE.
[29]
Jacob Krueger and Thorsten Berger. 2020. Activities and Costs of Re-Engineering Cloned Variants Into an Integrated Platform. In VaMoS.
[30]
Max Lillack, Stefan Stanciulescu, Wilhelm Hedman, Thorsten Berger, and Andrzej Wasowski. 2019. Intention-Based Integration of Software Variants. In ICSE.
[31]
S. McKee, N. Nelson, A. Sarma, and D. Dig. 2017. Software Practitioner Perspectives on Merge Conflicts and Resolutions. In ICSME.
[32]
Tom Mens. 2002. A state-of-the-art survey on software merging. IEEE Transactions on Software Engineering 28, 5 (2002), 449--462.
[33]
Leticia Montalvillo and Oscar Díaz. 2015. Tuning GitHub for SPL development: branching models & repository operations for product engineers. In SPLC.
[34]
Leticia Montalvillo, Oscar Díaz, and Thomas Fogdal. 2018. Reducing coordination overhead in SPLs: peering in on peers. In SPLC.
[35]
Julia Rubin and Marsha Chechik. 2013. A Framework for Managing Cloned Product Variants. In ICSE.
[36]
Julia Rubin, Krzysztof Czarnecki, and Marsha Chechik. 2015. Cloned product variants: from ad-hoc to managed software product lines. Software Tools for Technology Transfer 17, 5 (2015), 627--646.
[37]
A. Sarma, D. F. Redmiles, and A. van der Hoek. 2012. Palantır: Early Detection of Development Conflicts Arising from Parallel Code Changes. IEEE Transactions on Software Engineering 38, 4 (July 2012), 889--908.
[38]
Ştefan Stănciulescu, Sandro Schulze, and Andrzej Wąsowski. 2015. Forked and Integrated Variants in an Open-Source Firmware Project. In ICSME.
[39]
Ştefan Stănciulescu, Sandro Schulze, and Andrzej Wąsowski. 2015. Forked and integrated variants in an open-source firmware project. In ICSME.
[40]
Mark Staples and Derrick Hill. 2004. Experiences Adopting Software Product Line Development Without a Product Line Architecture (APSEC).
[41]
Daniel Strueber, Mukelabai Mukelabai, Jacob Krueger, Stefan Fischer, Lukas Linsbauer, Jabier Martinez, and Thorsten Berger. 2019. Facing the Truth: Benchmarking the Techniques for the Evolution of Variant-Rich Systems. In SPLC.

Cited By

View all
  • (2023)Behind Developer Contributions on Conflicting Merge Scenarios2023 IEEE 23rd International Working Conference on Source Code Analysis and Manipulation (SCAM)10.1109/SCAM59687.2023.00014(25-36)Online publication date: 2-Oct-2023
  • (2022)The Private Life of Merge ConflictsProceedings of the XXXVI Brazilian Symposium on Software Engineering10.1145/3555228.3555240(353-362)Online publication date: 5-Oct-2022
  • (2022)Towards developer support for merging forked test casesProceedings of the 26th ACM International Systems and Software Product Line Conference - Volume A10.1145/3546932.3547002(131-141)Online publication date: 12-Sep-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
VaMoS '20: Proceedings of the 14th International Working Conference on Variability Modelling of Software-Intensive Systems
February 2020
184 pages
ISBN:9781450375016
DOI:10.1145/3377024
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 06 February 2020

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. case study
  2. conflict resolution
  3. software merging

Qualifiers

  • Research-article

Conference

VaMoS '20

Acceptance Rates

Overall Acceptance Rate 66 of 147 submissions, 45%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)24
  • Downloads (Last 6 weeks)2
Reflects downloads up to 12 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Behind Developer Contributions on Conflicting Merge Scenarios2023 IEEE 23rd International Working Conference on Source Code Analysis and Manipulation (SCAM)10.1109/SCAM59687.2023.00014(25-36)Online publication date: 2-Oct-2023
  • (2022)The Private Life of Merge ConflictsProceedings of the XXXVI Brazilian Symposium on Software Engineering10.1145/3555228.3555240(353-362)Online publication date: 5-Oct-2022
  • (2022)Towards developer support for merging forked test casesProceedings of the 26th ACM International Systems and Software Product Line Conference - Volume A10.1145/3546932.3547002(131-141)Online publication date: 12-Sep-2022
  • (2022)Reuse and maintenance practices among divergent forks in three software ecosystemsEmpirical Software Engineering10.1007/s10664-021-10078-227:2Online publication date: 1-Mar-2022
  • (2021)Challenges of Resolving Merge Conflicts: A Mining and Survey StudyIEEE Transactions on Software Engineering10.1109/TSE.2021.3130098(1-1)Online publication date: 2021
  • (2020)An approach for updating forks against the original projectProceedings of the XXXIV Brazilian Symposium on Software Engineering10.1145/3422392.3422414(213-222)Online publication date: 21-Oct-2020
  • (2020)Detecting Semantic Conflicts via Automated Behavior Change Detection2020 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME46990.2020.00026(174-184)Online publication date: Sep-2020

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media