Can Program Synthesis be Used to Learn Merge Conflict Resolutions? An Empirical Analysis

03/02/2021
by   Rangeet Pan, et al.
0

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 off 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 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 1-2 line changes) that arise in the C++ files with 93.2

READ FULL TEXT

page 3

page 4

page 6

page 10

research
11/23/2021

Can Pre-trained Language Models be Used to Resolve Textual and Semantic Merge Conflicts?

Program merging is standard practice when developers integrate their ind...
research
05/17/2021

DeepMerge: Learning to Merge Programs

Program merging is ubiquitous in modern software development. Although c...
research
08/31/2021

MergeBERT: Program Merge Conflict Resolution via Neural Transformers

Collaborative software development is an integral part of the modern sof...
research
02/22/2021

Automatic Detection and Resolution of Software Merge Conflicts: Are We There Yet?

Developers create software branches for tentative feature addition and b...
research
05/29/2023

Mathematical Structure of Syntactic Merge

The syntactic Merge operation of the Minimalist Program in linguistics c...
research
02/29/2020

Automated Regression Unit Test Generation for Program Merges

Merging other branches into the current working branch is common in coll...
research
02/19/2018

Verifying Semantic Conflict-Freedom in Three-Way Program Merges

Even though many programmers rely on 3-way merge tools to integrate chan...

Please sign up or login with your details

Forgot password? Click here to reset