skip to main content
research-article
Open Access
Artifacts Available
Artifacts Evaluated & Functional

Evaluating and improving semistructured merge

Published:12 October 2017Publication History
Skip Abstract Section

Abstract

While unstructured merge tools rely only on textual analysis to detect and resolve conflicts, semistructured merge tools go further by partially exploiting the syntactic structure and semantics of the involved artifacts. Previous studies compare these merge approaches with respect to the number of reported conflicts, showing, for most projects and merge situations, reduction in favor of semistructured merge. However, these studies do not investigate whether this reduction actually leads to integration effort reduction (productivity) without negative impact on the correctness of the merging process (quality). To analyze that, and better understand how merge tools could be improved, in this paper we reproduce more than 30,000 merges from 50 open source projects, identifying conflicts incorrectly reported by one approach but not by the other (false positives), and conflicts correctly reported by one approach but missed by the other (false negatives). Our results and complementary analysis indicate that, in the studied sample, the number of false positives is significantly reduced when using semistructured merge. We also find evidence that its false positives are easier to analyze and resolve than those reported by unstructured merge. However, we find no evidence that semistructured merge leads to fewer false negatives, and we argue that they are harder to detect and resolve than unstructured merge false negatives. Driven by these findings, we implement an improved semistructured merge tool that further combines both approaches to reduce the false positives and false negatives of semistructured merge. We find evidence that the improved tool, when compared to unstructured merge in our sample, reduces the number of reported conflicts by half, has no additional false positives, has at least 8% fewer false negatives, and is not prohibitively slower.

Skip Supplemental Material Section

Supplemental Material

References

  1. B. Adams and S. McIntosh. 2016. Modern Release Engineering in a Nutshell – Why Researchers Should Care. In Proceedings of the 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER’16) . IEEE. Google ScholarGoogle ScholarCross RefCross Ref
  2. Sven Apel and Christian Lengauer. 2008. Superimposition: A Language-independent Approach to Software Composition. In Proceedings of the 7th International Conference on Software Composition (SC’08) . Springer-Verlag. Google ScholarGoogle ScholarCross RefCross Ref
  3. Sven Apel, Olaf Lessenich, and Christian Lengauer. 2012. Structured Merge with Auto-tuning: Balancing Precision and Performance. In Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering (ASE’12). ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Sven Apel, Jörg Liebig, Benjamin Brandl, Christian Lengauer, and Christian Kästner. 2011. Semistructured Merge: Rethinking Merge in Revision Control Systems. In Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering (ESEC/FSE’11) . ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Taweesup Apiwattanapong, Alessandro Orso, and Mary Jean Harrold. 2007. JDiff: A Differencing Technique and Tool for Object-oriented Programs. Automated Software Engineering (2007).Google ScholarGoogle Scholar
  6. Daniel M. Berry. 2017. Evaluation of Tools for Hairy Requirements Engineering and Software Engineering Tasks. (2017). https://cs.uwaterloo.ca/~dberry/FTP_SITE/tech.reports/EvalPaper.pdfGoogle ScholarGoogle Scholar
  7. Valdis Berzins. 1986. On merging software extensions. Acta Informatica (1986).Google ScholarGoogle Scholar
  8. Valdis Berzins. 1994. Software Merge: Semantics of Combining Changes to Programs. ACM Transactions on Programming Languages and Systems (1994).Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. David Binkley, Susan Horwitz, and Thomas Reps. 1995. Program Integration for Languages with Procedure Calls. ACM Transactions on Software Engineering and Methodology (1995).Google ScholarGoogle Scholar
  10. Christian Bird, Peter C. Rigby, Earl T. Barr, David J. Hamilton, Daniel M. German, and Prem Devanbu. 2009. The Promises and Perils of Mining Git. In Proceedings of the 6th IEEE International Working Conference on Mining Software Repositories (MSR’09) . IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 (FSE’12) . ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 (ESEC/FSE’11) . ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Jim Buffenbarger. 1995. Syntactic Software Merging. In Selected Papers from the ICSE SCM-4 and SCM-5 Workshops, on Software Configuration Management . Springer-Verlag. Google ScholarGoogle ScholarCross RefCross Ref
  14. Guilherme Cavalcanti, Paola Accioly, and Paulo Borba. 2015. Assessing Semistructured Merge in Version Control Systems: A Replicated Experiment. In Proceedings of the 9th International Symposium on Empirical Software Engineering and Measurement (ESEM’15) . ACM. Google ScholarGoogle ScholarCross RefCross Ref
  15. Guilherme Cavalcanti, Paola Accioly, and Paulo Borba. 2017. Online Appendix of the paper Evaluating and Improving Semistructured Merge. Hosted on https://spgroup.github.io/s3m . (2017).Google ScholarGoogle Scholar
  16. Danny Dig, Can Comertoglu, Darko Marinov, and Ralph Johnson. 2006. Automated Detection of Refactorings in Evolving Components. In Proceedings of the 20th European Conference on Object-Oriented Programming (ECOOP’06). SpringerVerlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Danny Dig, Kashif Manzoor, Ralph E. Johnson, and Tien N. Nguyen. 2008. Effective Software Merging in the Presence of Object-Oriented Refactorings. IEEE Transactions of Software Engineering (2008).Google ScholarGoogle Scholar
  18. John Eng. 2003. Sample size estimation: how many individuals should be studied? Radiology (2003).Google ScholarGoogle Scholar
  19. Judith E. Grass. 1992. Cdiff: A Syntax Directed Differencer for C++ Programs. In Proceedings of the USENIX C++ Conference. USENIX Association.Google ScholarGoogle Scholar
  20. Fergus Henderson. 2017. Software Engineering at Google. CoRR (2017).Google ScholarGoogle Scholar
  21. Susan Horwitz, Jan Prins, and Thomas Reps. 1989. Integrating Noninterfering Versions of Programs. ACM Transactions on Programming Languages and Systems (1989).Google ScholarGoogle Scholar
  22. Daniel Jackson and David A. Ladd. 1994. Semantic Diff: A Tool for Summarizing the Effects of Modifications. In Proceedings of the International Conference on Software Maintenance (ICSM’94) . IEEE. Google ScholarGoogle ScholarCross RefCross Ref
  23. Bakhtiar Khan Kasi and Anita Sarma. 2013. Cassandra: Proactive Conflict Minimization Through Optimized Task Scheduling. In Proceedings of the 35th International Conference on Software Engineering (ICSE’13). IEEE. Google ScholarGoogle ScholarCross RefCross Ref
  24. Sanjeev Khanna, Keshav Kunal, and Benjamin C. Pierce. 2007. A Formal Investigation of Diff3. In Proceedings of the 27th International Conference on Foundations of Software Technology and Theoretical Computer Science (FSTTCS’07) . Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Vladimir I Levenshtein. 1966. Binary codes capable of correcting deletions, insertions, and reversals. In Soviet physics doklady .Google ScholarGoogle Scholar
  26. Guido Malpohl, James J. Hunt, and Walter F. Tichy. 2000. Renaming detection. In Proceedings of the 15th IEEE International Conference on Automated Software Engineering . IEEE. Google ScholarGoogle ScholarCross RefCross Ref
  27. Gleiph Menezes. 2016. On the Nature of Software Merge Conflicts. Ph.D. Dissertation. Federal Fluminense University.Google ScholarGoogle Scholar
  28. T. Mens. 2002. A State-of-the-Art Survey on Software Merging. IEEE Transactions on Software Engineering (2002).Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Meiyappan Nagappan, Thomas Zimmermann, and Christian Bird. 2013. Diversity in Software Engineering Research. In Proceedings of the 9th Joint Meeting on Foundations of Software Engineering (ESEC/FSE’13) . ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. T. N. Nguyen. 2006. Object-Oriented Software Configuration Management. In Proceedings of the 22th International Conference on Software Maintenance (ICSM’06) . IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. João Gustavo Prudêncio, Leonardo Murta, Cláudia Werner, and Rafael Cepêda. 2012. To Lock, or Not to Lock: That is the Question. Journal of Systems and Software (2012).Google ScholarGoogle Scholar
  32. Rafael Santos and Leonardo Murta. 2012. Evaluating the Branch Merging Effort in Version Control Systems. In Proceedings of the 26th Brazilian Symposium on Software Engineering (SBES’12) . IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Bernhard Westfechtel. 1991. Structure-oriented Merging of Revisions of Software Documents. In Proceedings of the 3rd International Workshop on Software Configuration Management (SCM’91) . ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Thomas Zimmermann. 2007. Mining Workspace Updates in CVS. In Proceedings of the 4th International Workshop on Mining Software Repositories (MSR’07) . IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Evaluating and improving semistructured merge

      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

      Full Access

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!