skip to main content
10.1145/3555228.3555240acmotherconferencesArticle/Chapter ViewAbstractPublication PagessbesConference Proceedingsconference-collections
research-article

The Private Life of Merge Conflicts

Published:05 October 2022Publication History

ABSTRACT

Collaborative development is an essential practice for the success of most nontrivial software projects. However, merge conflicts might occur when a developer integrates, through a remote shared repository, their changes with the changes from other developers. Such conflicts may impair developers’ productivity and introduce unexpected defects. Previous empirical studies have analyzed such conflict characteristics and proposed different approaches to avoid or resolve them. However, these studies are limited to the analysis of code shared in public repositories. This way they ignore local (developer private) repository actions and, consequently, code integration scenarios that are often omitted from the history of remote shared repositories due to the use of commands such as git rebase, which rewrite Git commit history. These studies might then be examining only part of the actual code integration scenarios and conflicts. To assess that, in this paper we aim to shed light on this issue by bringing evidence from an empirical study that analyzes git command history data extracted from the local repositories of a number of developers. This way we can access hidden integration scenarios that cannot be accessed by analyzing public repository data as in GitHub based studies. We analyze 95 git reflog files from 61 different developers. Our results indicate that hidden code integration scenarios are more frequent than the visible ones. We also find higher conflict rates than previous studies. Our evidence suggests that studies that consider only remote shared repositories might loose integration conflict data by not considering the developer’s local repository actions.

References

  1. Paola Accioly, Paulo Borba, and Guilherme Cavalcanti. 2018a. Understanding Semi-Structured Merge Conflict Characteristics in Open-Source Java Projects (Journal-First Abstract). Association for Computing Machinery, New York, NY, USA, 955. https://doi.org/10.1145/3238147.3241983Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Paola Accioly, Paulo Borba, and Guilherme Cavalcanti. 2018b. Understanding Semi-Structured Merge Conflict Characteristics in Open-Source Java Projects (Journal-First Abstract). Association for Computing Machinery, New York, NY, USA, 955. https://doi.org/10.1145/3238147.3241983Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Paola Accioly, Paulo Borba, Léuson Silva, and Guilherme Cavalcanti. 2018c. Analyzing Conflict Predictors in Open-Source Java Projects. In Proceedings of the 15th International Conference on Mining Software Repositories (Gothenburg, Sweden) (MSR ’18). Association for Computing Machinery, New York, NY, USA, 576–586. https://doi.org/10.1145/3196398.3196437Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Iftekhar Ahmed, Caius Brindescu, Umme Ayda Mannan, Carlos Jensen, and Anita Sarma. 2017. An Empirical Examination of the Relationship between Code Smells and Merge Conflicts. In Proceedings of the 11th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (Markham, Ontario, Canada) (ESEM ’17). IEEE Press, 58–67. https://doi.org/10.1109/ESEM.2017.12Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Sven Apel, Olaf Leßenich, and Christian Lengauer. 2012. Structured merge with auto-tuning: balancing precision and performance. In 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering. 120–129. https://doi.org/10.1145/2351676.2351694Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Sven Apel, Jörg Liebig, Benjamin Brandl, Christian Lengauer, and Christian Kästner. 2011. Semistructured merge. In Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering - SIGSOFT/FSE '11. ACM Press. https://doi.org/10.1145/2025113.2025141Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Christian Bird and Thomas Zimmermann. 2012. Assessing the Value of Branches with What-If Analysis. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering (Cary, North Carolina) (FSE ’12). Association for Computing Machinery, New York, NY, USA, Article 45, 11 pages. https://doi.org/10.1145/2393596.2393648Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Yuriy Brun, Reid Holmes, M.D. Ernst, and David Notkin. 2013. Early Detection of Collaboration Conflicts and Risks. Software Engineering, IEEE Transactions on 39 (10 2013), 1358–1375. https://doi.org/10.1109/TSE.2013.28Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin. 2011. Proactive Detection of Collaboration Conflicts. In Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering(Szeged, Hungary) (ESEC/FSE ’11). Association for Computing Machinery, New York, NY, USA, 168–178. https://doi.org/10.1145/2025113.2025139Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Guilherme Cavalcanti, Paola Accioly, and Paulo Borba. 2015. Assessing Semistructured Merge in Version Control Systems: A Replicated Experiment. In 2015 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). 1–10. https://doi.org/10.1109/ESEM.2015.7321191Google ScholarGoogle ScholarCross RefCross Ref
  11. Guilherme Cavalcanti, Paulo Borba, and Paola Accioly. 2017. Evaluating and Improving Semistructured Merge. Proc. ACM Program. Lang. 1, OOPSLA, Article 59 (oct 2017), 27 pages. https://doi.org/10.1145/3133883Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Guilherme Cavalcanti, Paulo Borba, Georg Seibt, and Sven Apel. 2019. The Impact of Structure on Software Merging: Semistructured Versus Structured Merge. In 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE). 1002–1013. https://doi.org/10.1109/ASE.2019.00097Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Scott Chacon and Ben Straub. 2014. Pro Git (2nd editioned.). Apress.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Jônatas Clementino, Paulo Borba, and Guilherme Cavalcanti. 2021. Textual Merge Based on Language-Specific Syntactic Separators. Association for Computing Machinery, New York, NY, USA, 243–252. https://doi.org/10.1145/3474624.3474646Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Léuson Da Silva, Paulo Borba, and Arthur Pires. 2022. Build Conflicts in the Wild. J. Softw. Evol. Process 34, 4 (apr 2022), 28 pages. https://doi.org/10.1002/smr.2441Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Gleiph Ghiotto, Leonardo Murta, Márcio Barros, and André van der Hoek. 2020. On the Nature of Merge Conflicts: A Study of 2,731 Open Source Java Projects Hosted by GitHub. IEEE Transactions on Software Engineering 46, 8 (2020), 892–915. https://doi.org/10.1109/TSE.2018.2871083Google ScholarGoogle ScholarCross RefCross Ref
  17. Mário Luís Guimarães and António Rito Silva. 2012. Improving Early Detection of Software Merge Conflicts. In Proceedings of the 34th International Conference on Software Engineering (Zurich, Switzerland) (ICSE ’12). IEEE Press, 342–352.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Tao Ji, Liqian Chen, Xin Yi, and Xiaoguang Mao. 2020. Understanding Merge Conflicts and Resolutions in Git Rebases. In 2020 IEEE 31st International Symposium on Software Reliability Engineering (ISSRE). 70–80. https://doi.org/10.1109/ISSRE5003.2020.00016Google ScholarGoogle ScholarCross RefCross Ref
  19. Bakhtiar Khan Kasi and Anita Sarma. 2013. Cassandra: Proactive Conflict Minimization through Optimized Task Scheduling. In Proceedings of the 2013 International Conference on Software Engineering (San Francisco, CA, USA) (ICSE ’13). IEEE Press, 732–741.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Hoai Le Nguyen and Claudia-Lavinia Ignat. 2017. Parallelism and conflicting changes in Git version control systems. In IWCES’17 - The Fifteenth International Workshop on Collaborative Editing Systems. Portland, Oregon, United States. https://hal.inria.fr/hal-01588482Google ScholarGoogle Scholar
  21. Wardah Mahmood, Moses Chagama, Thorsten Berger, and Regina Hebig. 2020. Causes of merge conflicts: a case study of ElasticSearch. 1–9. https://doi.org/10.1145/3377024.3377047Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Shane McKee, Nicholas Nelson, Anita Sarma, and Danny Dig. 2017. Software Practitioner Perspectives on Merge Conflicts and Resolutions. In 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME). 467–478. https://doi.org/10.1109/ICSME.2017.53Google ScholarGoogle ScholarCross RefCross Ref
  23. T. Mens. 2002. A state-of-the-art survey on software merging. IEEE Transactions on Software Engineering 28, 5 (2002), 449–462. https://doi.org/10.1109/TSE.2002.1000449Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Hoai Le Nguyen and Claudia-Lavinia Ignat. 2018. An Analysis of Merge Conflicts and Resolutions in Git-Based Open Source Projects. Computer Supported Cooperative Work (CSCW) 27 (12 2018). https://doi.org/10.1007/s10606-018-9323-3Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Yuichi Nishimura and Katsuhisa Maruyama. 2016. Supporting Merge Conflict Resolution by Using Fine-Grained Code Change History. In 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), Vol. 1. 661–664. https://doi.org/10.1109/SANER.2016.46Google ScholarGoogle ScholarCross RefCross Ref
  26. D.E. Perry, H.P. Siy, and L.G. Votta. 1998. Parallel changes in large scale software development: an observational case study. In Proceedings of the 20th International Conference on Software Engineering. 251–260. https://doi.org/10.1109/ICSE.1998.671134Google ScholarGoogle ScholarCross RefCross Ref
  27. Anita Sarma, David F. Redmiles, and André van der Hoek. 2012. Palantir: Early Detection of Development Conflicts Arising from Parallel Code Changes. IEEE Transactions on Software Engineering 38, 4 (2012), 889–908. https://doi.org/10.1109/TSE.2011.64Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Todd Sedano, Paul Ralph, and Cécile Péraire. 2017. Software Development Waste. In 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE). 130–140. https://doi.org/10.1109/ICSE.2017.20Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Leuson Da Silva, Paulo Borba, Wardah Mahmood, Thorsten Berger, and João Moisakis. 2020. Detecting Semantic Conflicts via Automated Behavior Change Detection. In 2020 IEEE International Conference on Software Maintenance and Evolution (ICSME). 174–184. https://doi.org/10.1109/ICSME46990.2020.00026Google ScholarGoogle ScholarCross RefCross Ref
  30. Alberto Tavares, Paulo Borba, Guilherme Cavalcanti, and Sergio Soares. 2019. Semistructured Merge in JavaScript Systems. 1014–1025. https://doi.org/10.1109/ASE.2019.00098Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. André van der Hoek and Anita Sarma. 2008. Palantir: enhancing configuration management systems with workspace awareness to detect and resolve emerging conflicts.Google ScholarGoogle Scholar
  32. Thomas Zimmermann. 2007. Mining Workspace Updates in CVS. In Fourth International Workshop on Mining Software Repositories (MSR’07:ICSE Workshops 2007). 11–11. https://doi.org/10.1109/MSR.2007.22Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. The Private Life of Merge Conflicts

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Other conferences
      SBES '22: Proceedings of the XXXVI Brazilian Symposium on Software Engineering
      October 2022
      457 pages
      ISBN:9781450397353
      DOI:10.1145/3555228

      Copyright © 2022 ACM

      Publication rights licensed to ACM. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 5 October 2022

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed limited

      Acceptance Rates

      Overall Acceptance Rate147of427submissions,34%
    • Article Metrics

      • Downloads (Last 12 months)13
      • Downloads (Last 6 weeks)0

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    HTML Format

    View this article in HTML Format .

    View HTML Format