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 capability. It outperforms, in terms of F1 score and recall, previous methods that rely on dynamic analysis for detecting semantic conflicts, but these show better precision. Our technique precision is comparable to the ones observed in other studies that also leverage static analysis or use theorem proving techniques to detect semantic conflicts, albeit with significantly improved overall performance.
翻译:版本控制工具使开发者能够独立完成开发任务,并通过合并操作实现变更集成,同时报告文本冲突。然而,当开发者集成变更时,可能会遇到当前合并工具未检测到的其他类型冲突。本文聚焦于动态语义冲突——这类冲突发生时合并操作未报告文本冲突,却导致了非预期的运行时行为干扰。为解决该问题,我们提出一种技术,探索利用静态分析检测两名开发者的贡献合并时产生的干扰。通过从合并场景中提取的99个实验单元数据集进行评估,结果表明该技术具有显著的干扰检测能力:在F1分数和召回率指标上优于以往依赖动态分析检测语义冲突的方法(但后者在精确率上表现更佳)。本研究的技术精确率与同类研究(同样采用静态分析或定理证明技术检测语义冲突)相当,而整体性能显著提升。