Fri 9 Nov 2018 13:30 - 13:52 at Studio 2 - Safe Merging Chair(s): David J. Pearce

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 conflict-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 summarization for shared program fragments with precise relational reasoning for the modifications. Towards this goal, our method uses a 4-way differencing algorithm on abstract syntax trees to represent different program versions as edits applied to a shared program with holes. This representation allows our verification algorithm to reason about different edits in isolation and compose them to obtain an overall proof of conflict freedom. We have implemented the proposed technique in a new tool called SafeMerge and evaluate it on 52 real-world merge scenarios obtained from Github. The experimental results demonstrate the benefits of our approach over syntactic conflict-freedom and indicate that SafeMerge is both precise and practical.

Fri 9 Nov

Displayed time zone: Guadalajara, Mexico City, Monterrey change

13:30 - 14:15
Safe MergingOOPSLA at Studio 2
Chair(s): David J. Pearce Victoria University of Wellington
13:30
22m
Talk
Verified Three-Way Program Merge
OOPSLA
Marcelo Sousa University of Oxford, Işıl Dillig UT Austin, Shuvendu Lahiri Microsoft Research
13:52
22m
Talk
Conflict Resolution for Structured Merge via Version Space Algebra
OOPSLA
Fengmin Zhu , Fei He Tsinghua University