|title:||CheckMerge: A System for Risk Assessment of Code Merges|
Ansgar Fehnker ,
Richard van Paasen
When working on large software projects using version control systems, merges are not always trivial to execute. Even when no git-like merge conflicts exist, the resulting program is not necessarily correct. In this study a number of categories of changes that may cause issues during merges are identified. Two new language-independent algorithms have been developed to detect changes from three of these categories. These algorithms work based on the abstract syntax trees (ASTs) of compared program versions and require the differences between these versions to be calculated beforehand. A prototype system has been designed and implemented for the C programming language. The newly developed algorithms perform well in detecting the problematic changes, in the case of one algorithm at the cost of false positives. The prototype system shows the feasibility of such a system, but is not suitable for production use. All in all the analysis of source code merges is a promising area of research and with some effort a tool for practical code merge analysis could be produced.