Can Program Synthesis be Used to Learn Merge Conflict Resolutions? An Empirical Analysis
Rangeet Pan, Vu Le, Nachiappan Nagappan, Sumit Gulwani, Shuvendu K. Lahiri, Mike Kaufman
摘要
Forking structure is widespread in the open-source repositories and that causes a significant number of merge conflicts. In this paper, we study the problem of textual merge conflicts from the perspective of Microsoft Edge, a large, highly collaborative fork of the main Chromium branch with significant merge conflicts. Broadly, this study is divided into two sections. First, we empirically evaluate textual merge conflicts in Microsoft Edge and classify them based on the type of files, location of conflicts in a file, and the size of conflicts. We found that ∼28% of the merge conflicts are 1-2 line changes, and many resolutions have frequent patterns. Second, driven by these findings, we explore Program Synthesis (for the first time) to learn patterns and resolve structural merge conflicts. We propose a novel domain-specific language (DSL) that captures many of the repetitive merge conflict resolution patterns and learn resolution strategies as programs in this DSL from example resolutions. We found that the learned strategies can resolve 11.4% of the conflicts (∼41% of 1-2 line changes) that arise in the C++ files with 93.2% accuracy. Index Terms-merge conflict, program synthesis, automated fixing This work has been done when Nachiappan Nagappan was an employee at Microsoft and Rangeet Pan was an intern at Microsoft.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper7
- Program merge conflict resolution via neural transformersAlexey Svyatkovskiy, Sarah Fakhoury, Negar Ghorbani, Todd Mytkowicz 等FSE 2022 · 被引用 33 次
- Using pre-trained language models to resolve textual and semantic merge conflicts (experience paper)Jialu Zhang, Todd Mytkowicz, Mike Kaufman, Ruzica Piskac 等ISSTA 2022 · 被引用 30 次
- FlashFill++: Scaling Programming by Example by Cutting to the ChaseJosé Cambronero, Sumit Gulwani, Vu Le, Daniel Perelman 等POPL 2023 · 被引用 27 次
- Leveraging Feature Bias for Scalable Misprediction Explanation of Machine Learning ModelsJiri Gesi, Xinyun Shen, Yunfan Geng, Qihong Chen 等ICSE 2023 · 被引用 8 次
- Detecting Build Conflicts in Software Merge for Java Programs via Static AnalysisSheikh Shadab Towqir, Bowen Shen, Muhammad Ali Gulzar, Na MengASE 2022 · 被引用 7 次
相关 Paper
- Merge Conflict Resolution: Classification or Generation?Jinhao Dong, Qihao Zhu, Zeyu Sun, Yiling Lou 等ASE 2023 · 被引用 8 次
- EditFusion: Resolving Code Merge Conflicts via Edit SelectionChangxin Wang, Lei Xu, Rundong Wang, Yiming Ma 等ASE 2025
- Revisiting the Conflict-Resolving Problem from a Semantic PerspectiveJinhao Dong, Jun Sun, Yun Lin, Yedi Zhang 等ASE 2024
- Planning for untangling: predicting the difficulty of merge conflictsCaius Brindescu, Iftekhar Ahmed, Rafael Leano, Anita SarmaICSE 2020 · 被引用 19 次
- Do code refactorings influence the merge effort?André Oliveira, Vânia Neves, Alexandre Plastino, Ana Carla Bibiano 等ICSE 2023 · 被引用 5 次
