Detecting Semantic Conflicts using Static Analysis
Galileu Santos de Jesus, Paulo Borba, Rodrigo Bonif\'acio, Matheus, Barbosa de Oliveira

TL;DR
This paper introduces a static analysis-based technique to detect semantic conflicts during code merging, addressing limitations of existing tools that only identify textual conflicts, and demonstrates its effectiveness on a dataset of real merge scenarios.
Contribution
The paper presents a novel static analysis approach for detecting semantic conflicts in code merges, outperforming previous dynamic analysis methods in recall and F1 score.
Findings
Outperforms previous dynamic analysis methods in F1 score and recall
Achieves comparable precision to static analysis and theorem proving approaches
Demonstrates effectiveness on a dataset of 99 merge scenarios
Abstract
Version control system tools empower developers to independently work on their development tasks. These tools also facilitate the integration of changes through merging operations, and report textual conflicts. However, when developers integrate their changes, they might encounter other types of conflicts that are not detected by current merge tools. In this paper, we focus on dynamic semantic conflicts, which occur when merging reports no textual conflicts but results in undesired interference - causing unexpected program behavior at runtime. To address this issue, we propose a technique that explores the use of static analysis to detect interference when merging contributions from two developers. We evaluate our technique using a dataset of 99 experimental units extracted from merge scenarios. The results provide evidence that our technique presents significant interference detection…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Reliability and Analysis Research · Software System Performance and Reliability
