SoManyConflicts: Resolve Many Merge Conflicts Interactively and Systematically

Bo Shen,Wei Zhang,Ailun Yu,Yifan Shi,Haiyan Zhao,Zhi Jin
DOI: https://doi.org/10.1109/ASE51524.2021.9678937
2021-01-01
Abstract:Code merging plays an important role in collaborative software development. However, it is often tedious and error-prone for developers to manually resolve merge conflicts, especially when there are many conflicts after merging long-lived branches or parallel versions. In this paper, we present SoMany-Conflicts, a language-agnostic approach to help developers resolve merge conflicts systematically, by utilizing their interrelations (e.g., dependency, similarity, etc.). SoMany-Conflicts employs a graph representation to model these interrelations and provides 3 major features: 1) cluster and order related conflict based on the graph connectivity; 2) suggest related conflicts of one focused conflict based on the topological sorting, 3) suggest resolution strategies for unresolved conflicts based already resolved ones. We have implemented SoManyConflicts as a Visual Studio Code extension that supports multiple languages (Java, JavaScript, and TypeScript, etc.), which is briefly introduced in the video: https://youtu.be/_asWh_ j1KTU. The source code is publicly available at: https://github.com/Symbolk/somanyconfficts.
What problem does this paper attempt to address?