CVSM Bibliography, Entry [ ApLB+2011ESEC ]


Apel, Sven; Liebig, Jörg; Kästner, Christian; Brandl, Benjamin; Lengauer, Christian: Semistructured Merge: Rethinking Merge in Revision Control Systems;
p.190­200 in: Proc. 13th European Software Engineering Conference and 19th ACM SIGSOFT Symposium on the Foundations of Software Engineering, Sept. 5-9, 2011, Szeged, Hungary; ACM; 2011
Download: Volltext
Library Entries: DOI 10.1145/2025113.2025141, ACM Digital Library
Deskriptoren: CVSM, source code:merging

Abstract: An ongoing problem in revision control systems is how to resolve conflicts in a merge of independently developed revisions. Unstructured revision control systems are purely text-based and solve conflicts based on textual similarity. Structured revision control systems are tailored to specific languages and use language-specific knowledge for conflict resolution. We propose semistructured revision control systems that inherit the strengths of both: the generality of unstructured systems and the expressiveness of structured systems. The idea is to provide structural information of the underlying software artifacts - declaratively, in the form of annotated grammars. This way, a wide variety of languages can be supported and the information provided can assist in the automatic resolution of two classes of conflicts: ordering conflicts and semantic conflicts. The former can be resolved independently of the language and the latter using specific conflict handlers. We have been developing a tool that supports semistructured merge and conducted an empirical study on 24 software projects developed in Java, C#, and Python comprising 180 merge scenarios. We found that semistructured merge reduces the number of conflicts in 60% of the sample merge scenarios by, on average, 34%, compared to unstructured merge. We found also that renaming is challenging in that it can increase the number of conflicts during semistructured merge, and that a combination of unstructured and semistructured merge is a pragmatic way to go.