kirancodes.me
To Proof Maintenance & Beyond!

SoManyConflicts: Resolve Many Merge Conflicts Interactively and Systematically

Bo Shen, Wei Zhang, Ailun Yu, Yifan Shi, Haiyan Zhao, Zhi Jin

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 SoManyConflicts, a language-agnostic approach to help developers resolve merge conflicts systematically, by utilizing their interrelations (e.g., dependency, similarity, etc.). SoManyConflicts 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/asWhj1KTU. The source code is publicly available at: https://github.com/Symbolk/somanyconflicts.

BibTeX
@inproceedings{Shen-al:ASE21,
  author    = {Bo Shen and
               Wei Zhang and
               Ailun Yu and
               Yifan Shi and
               Haiyan Zhao and
               Zhi Jin},
  title     = {{SoManyConflicts:} Resolve Many Merge Conflicts Interactively and Systematically},
  booktitle = {ASE},
  pages     = {1291--1295},
  publisher = {{IEEE}},
  year      = {2021},
}

Related papers