Semistructured Merge in Revision Control Systems

kaestner@cs.cmu.edu (S. Apel, J. Liebig, C. Lengauer, C. Kästner, W. Cook)
Sat, 05 Mar 2016 18:41:39 -0500

Sven Apel, Jörg Liebig, Christian Lengauer, Christian Kästner, and William R. Cook. Semistructured Merge in Revision Control Systems. In Proceedings of the 4th Int'l Workshop on Variability Modelling of Software-Intensive Systems (VaMoS), pages 13--20, Essen, Germany: University of Duisburg-Essen, January 2010.

Revision control systems are a major means to manage versions and variants of today's software systems. An ongoing problem in these systems is how to resolve conflicts when merging 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 to inherit the strengths of both classes of systems: generality and expressiveness. The idea is to provide structural information of the underlying software artifacts in the form of annotated grammars, which is motivated by recent work on software product lines. This way, a wide variety of languages can be supported and the information provided can assist the resolution of conflicts. We have implemented a preliminary tool and report on our experience with merging Java artifacts. We believe that drawing a connection between revision control systems and product lines has benefits for both fields.