论文

Rover:利用代码上下文解决合并冲突

Rover: Context-aware Conflict Resolution with LLM

摘要

代码合并是一项重大挑战,尤其是在大型项目中。包括程序分析和机器学习在内的现有解决方案显示出前景,但面临严重的局限性。程序分析缺乏推断开发人员意图的能力,依赖于将未解决的冲突转移到手动处理的保守策略。与此同时,由于上下文意识不足,基于模型的方法难以解决涉及复杂代码依赖性的冲突。为了解决这些差距,我们引入了 Rover,这是一种新颖的冲突解决系统,它将程序分析与 大语言模型 (LLM) 集成在一起。为了获得上下文感知提示,我们提出了多层代码属性图(MtCPG),这是一种捕获文件间依赖关系并为给定冲突启用上下文分析的新表示。使用图形连接算法,Rover 进一步将冲突代码和相关更改聚类为有意义的“上下文”,指导 LLM 生成准确的解决方案。我们将 Rover 与独立的 LLM、机器学习基线 MergeGen 和建议提供程序工具 WizardMerge 进行比较,并以相邻代码作为上下文。评估结果表明,Rover 在冲突解决方面超越了所有这些方法,在字符、词汇和语义级别上实现了与 真值 解决方案更高的相似性。