DeepMerge: Learning to Merge Programs

05/17/2021
by   Elizabeth Dinella, et al.
0

Program merging is ubiquitous in modern software development. Although commonly used in most version control systems, text-based merge algorithms are prone to producing spurious merge conflicts: they report a conflict even when program changes do not interfere with each other semantically. Spurious merge conflicts are costly to development as the need for manual intervention stalls modern continuous integration pipelines. We propose a novel data-driven approach to identify and resolve spurious merge conflicts with a sequence-to-sequence machine learning model. We realize our approach in a tool DeepMerge that uses a novel combination of (i) an edit-aware embedding of merge inputs and (ii) a variation of pointer networks to construct resolutions from input segments. We also propose an algorithm to extract ground truth manual resolutions from a code corpus and employ it to curate a dataset comprising 10,729 non-trivial resolutions in Javascript programs. Our evaluation shows that DeepMerge can predict correct resolutions with high precision (72 modest recall (34 comprising of upto 3 lines that comprise 24

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/31/2021

MergeBERT: Program Merge Conflict Resolution via Neural Transformers

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

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

Forking structure is widespread in the open-source repositories and that...
research
12/20/2021

A Systematic Comparison of Two Refactoring-aware Merging Techniques

Dealing with merge conflicts in version control systems is a challenging...
research
05/09/2022

Towards Development with Multi-Version Models: Detecting Merge Conflicts and Checking Well-Formedness

Developing complex software requires that multiple views and versions of...
research
11/22/2018

Uma técnica para a quantificação do esforço de merge

Developers that use version control systems can work in parallel with ot...
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
09/10/2019

Competing Topic Naming Conventions in Quora: Predicting Appropriate Topic Merges and Winning Topics from Millions of Topic Pairs

Quora is a popular Q&A site which provides users with the ability to tag...

Please sign up or login with your details

Forgot password? Click here to reset