一句话:提出语言无关的 SoManyConflicts,用冲突关系图交互式、系统化地辅助开发者解决大量合并冲突。
代码合并是协作开发的关键环节,但长期分支或并行版本合并后往往产生大量冲突,人工解决繁琐且易错。本文提出语言无关的 SoManyConflicts,核心思想是利用冲突之间的相互关系(依赖、相似性等)辅助系统化解决。该方法用图表示建模冲突间关系,并提供三项功能:基于图连通性对相关冲突聚类和排序;基于拓扑排序推荐与当前焦点冲突相关的冲突;基于已解决冲突为未解决冲突推荐解决策略。作者将其实现为 Visual Studio Code 扩展,支持 Java、JavaScript、TypeScript 等多种语言,并通过视频和公开源码展示。
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.
DOI 原文 ·
@inproceedings{paperbot6591,
title = {SoManyConflicts: Resolve Many Merge Conflicts Interactively and Systematically},
author = {Bo Shen and Wei Zhang and Ailun Yu and Yifan Shi and Haiyan Zhao and Zhi Jin},
booktitle = {ASE},
year = {2021},
doi = {10.1109/ase51524.2021.9678937}
}