Verifying Semantic Conflict-Freedom in Three-Way Program Merges

02/19/2018
by   Marcelo Sousa, et al.
0

Even though many programmers rely on 3-way merge tools to integrate changes from different branches, such tools can introduce subtle bugs in the integration process. This paper aims to mitigate this problem by defining a semantic notion of confict-freedom, which ensures that the merged program does not introduce new unwanted behaviors. We also show how to verify this property using a novel, compositional algorithm that combines lightweight dependence analysis for shared program fragments and precise relational reasoning for the modifications. We evaluate our tool called SafeMerge on 52 real-world merge scenarios obtained from Github and compare the results against a textual merge tool. The experimental results demonstrate the benefits of our approach over syntactic confict-freedom and indicate that SafeMerge is both precise and practical.

READ FULL TEXT

page 1

page 2

page 3

page 4

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
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
08/31/2021

MergeBERT: Program Merge Conflict Resolution via Neural Transformers

Collaborative software development is an integral part of the modern sof...
research
05/29/2023

Mathematical Structure of Syntactic Merge

The syntactic Merge operation of the Minimalist Program in linguistics c...
research
09/22/2020

Evolutionary Conflict Checking

During the software evolution, existing features may be adversely affect...
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/07/2020

Galloping in natural merge sorts

We study the algorithm TimSort and the sub-routine it uses to merge mono...

Please sign up or login with your details

Forgot password? Click here to reset