Detecting Semantic Conflicts with Unit Tests
针对语义合并冲突问题,提出基于自动生成单元测试作为部分规范的语义合并工具SAM,实证评估显示结合特定测试生成工具与可测试性转换可有效检测冲突。
2023-10-03 cs.SE
Predicting Merge Conflicts in Collaborative Software Development
University of Alberta(阿尔伯塔大学);University of British Columbia(不列颠哥伦比亚大学)
背景在协作软件开发过程中,开发人员经常使用分支来添加功能或修复错误。当合并来自两个分支的更改时,如果更改不一致,则可能发生冲突。开发人员需要在完成合并之前解决这些冲突,这是一个容易出错且耗时的过程。合并冲突的早期检测是处理此问题的方法之一,它警告开发人员在冲突变得庞大和复杂之前解决冲突。现有技术通过在后台连续地拉取和合并分支的所有组合来实现这一点,以在冲突发生时立即通知开发人员,这是计算上昂贵的过程。降低此成本的一种潜在方法是使用基于机器学习的冲突预测器,该预测器过滤掉不太可能具有冲突的合并场景,即安全合并场景。目标。在本文中,我们评估冲突预测是否可行。法我们设计了一个分类器预测合并冲突,基于9个轻量级的Git功能集。为了评估我们的预测器,我们对来自7种程序设计语言的744个GitHub存储库的267,657个合并场景进行了大规模研究。结果我们的研究结果表明,我们实现了高f1分数,从0.95到0.97不同的程序设计语言,预测安全合并的情况下。对于冲突的合并场景,f1分数在0.57和0.68之间。结论.预测合并冲突在实践中是可行的,特别是在预测安全合并场景作为推测性合并的预过滤步骤的上下文中。
2019-07-14 cs.LG cs.SE
MergirafSemi: A Language-Agnostic Semistructured Merge Tool
Centro de Informática, UFPE(计算机中心,伯南布哥联邦大学);Instituto Federal de Pernambuco(伯南布哥联邦学院)
针对现有合并工具的局限,提出与语言无关的半结构化合并工具MergirafSemi,利用轻量级具体语法树平衡合并的准确性与效率,在真实场景中表现优于多数同类工具。
2026-08-26 cs.SE
LLM-based vs. Search-based Merge Conflict Resolution: An Empirical Study of Competing Paradigms
Federal Fluminense University(联邦弗鲁米嫩塞大学)
本文通过实证研究比较了基于大语言模型和基于搜索的合并冲突解决方法,揭示了两者在实际场景中的优劣势及权衡。
2026-05-15 cs.SE
DeltaImpactFinder: Assessing Semantic Merge Conflicts with Dependency Analysis
在软件开发中,版本控制系统(VersionControlSystems,缩写为VCS)提供了分支和合并支持工具。这些工具在开发人员中很受欢迎,可以在单独的行中同时更改代码库,然后自动协调更改。但是,两个独立正确的更改在合并在一起时可能会引入错误。我们把这种语义合并冲突称为bug。变更影响分析(CIA)旨在评估代码库变更的影响。在本文中,我们提出了使用CIA检测语义合并冲突。在合并时,DELTAIMPACTFINDER分析并比较其源分支和目标分支中更改的影响。我们将这两种影响之间的差异称为delta影响。如果delta-impact为空,则没有语义合并冲突的指示符,合并可以自动继续。否则,三角洲影响包含了可能冲突的根源。
2015-09-14 cs.PL cs.SE
Can Large Language Models Resolve Real Java Merge Conflicts? An Evaluation with a Calibrated LLM-as-Judge
Virginia Polytechnic Institute and State University(弗吉尼亚理工大学)
该研究针对真实Java合并冲突,构建仅用推理信号的LLM求解器,经校准的LLM评判者评估发现,其解决冲突的覆盖和匹配开发者方案的表现优于传统工具AutoMerge,但结构正确性仍需确定性检查保障。
2026-07-31 cs.SE
Semistructured Merge with Language-Specific Syntactic Separators
针对半结构化合并准确性下降的问题,提出一种利用特定语言语法分隔符在不解析的情况下推断结构的合并工具,在保留半结构化合并优势的同时显著减少了虚假冲突,表现出优于非结构化工具的性能。
2024-07-26 cs.SE
Do Customized Android Frameworks Keep Pace with Android?
为了满足不同的客户需求,设备供应商和操作系统提供商通常依赖于Android操作系统的开源特性,并提供定制版本的Android操作系统。当发布新版本的Android操作系统时,设备供应商和操作系统提供商需要将Android操作系统的更改合并到其定制中,以解决其错误修复、安全补丁和新功能。由于自定义操作系统的开发人员可能已经对代码位置进行了更改,而这些代码位置也被Android操作系统的开发人员修改,因此合并任务的特征可能是冲突,解决冲突可能非常耗时且容易出错。为了更深入地了解Android生态系统的这一关键方面,我们提出了一项实证研究,调查了Android操作系统的八个开源定制如何将Android操作系统的更改合并到他们的项目中。该研究分析了定制操作系统的开发人员合并Android操作系统更改的频率,开发人员遇到文本合并冲突的频率以及这些冲突的特征。此外,为了分析冲突的影响,该研究还分析了冲突如何影响随机选择的1,000个应用程序的样本。在分析了1,148次合并操作后,我们发现开发人员对9.7%的Android OS发布版本执行了这些操作,41.3%的合并操作中开发人员会遇到至少一个冲突,58.1%的冲突要求开发人员更改定制的操作系统,64.4%的应用程序至少使用一种受冲突影响的方法。除了详细介绍我们的研究结果外,本文还讨论了我们研究结果的含义,并为使用Android及其自定义的研究…
2022-05-31 cs.SE
Program Merge Conflict Resolution via Neural Transformers
Microsoft(微软);Washington State University(华盛顿州立大学);UC Irvine(加州大学欧文分校);Microsoft Research(微软研究院);University of Pennsylvania(宾夕法尼亚大学)
协作软件开发是现代软件开发生存周期的一个组成部分,是大型软件项目成功的关键。当多个开发人员对同一行代码进行并发更改时,可能会发生合并冲突。这种冲突会使拉取请求和持续集成管道延迟数小时到数天,严重影响开发人员的生产力。为了解决这个问题,我们介绍了MergeBERT,一种新的神经程序合并框架的基础上令牌级的三路差分和一个Transformer编码器模型。通过利用合并冲突解决方案的限制性,我们重新制定的任务,生成的决议序列作为一个分类任务,从现实世界的合并提交数据中提取的一组原始合并模式。我们的模型在合并分辨率合成方面实现了63-68%的准确率,与现有的半结构化工具相比,性能提高了近3倍,与神经程序合并工具相比,性能提高了2倍。最后,我们证明了MergeBERT足够灵活,可以处理Java、JavaScript、TypeScript和C#程序设计语言中的源代码文件。为了衡量MergeBERT的实际使用,我们进行了一项用户研究,以评估MergeBERT的建议与25名开发人员从大型OSS项目的122个现实世界中遇到的冲突。结果表明,在实践中,MergeBERT决议将被接受在一个更高的速度比估计的精度和准确性的自动度量。此外,我们使用参与者的反馈来确定未来改进MergeBERT的途径。
2022-11-29 cs.CL cs.SE
DeepMerge: Learning to Merge Programs
在协作软件开发中,程序合并是集成来自多个程序员的更改的机制。现代版本控制系统中的合并算法会在更改与文本发生冲突时报告冲突。合并冲突需要人工干预,并且经常会使现代持续集成管道停止。之前的工作发现,尽管成本很高,但大多数解决方案都涉及重新排列文本而不编写任何新代码。受此启发,我们提出了第一个数据驱动的方法来解决合并冲突的机器学习模型。我们在工具DeepMerge中实现了我们的方法,该工具使用了(i)合并输入的编辑感知嵌入和(ii)指针网络的变体的新颖组合,以从输入片段构建分辨率。我们还提出了一种算法,以本地化手动决议的解决方案的文件,并利用它来策划地面实况数据集,包括8,719个非平凡的决议在JavaScript程序。我们的评估表明,在一个测试集上,DeepMerge可以预测37%的非平凡合并的正确解决方案,而最先进的半结构化合并技术只能预测4%。此外,在最多3行的合并子集(占总数据集的24%)上,DeepMerge可以以78%的准确率预测正确的分辨率。
2021-09-06 cs.SE
A Universal Textual Merge Strategy Based on Tokens for Version Control Systems
Czech Technical University in Prague(布拉格捷克技术大学);CIIRC, Czech Technical University in Prague(布拉格捷克技术大学计算和工程研究中心)
本文提出Summer算法,通过令牌级变更生成字符串重写规则和移动规则,实现跨格式的文本合并,实验显示其在精确度和语义准确度上表现优异。
2026-04-15 cs.SE
AgenticFlict: A Large-Scale Dataset of Merge Conflicts in AI Coding Agent Pull Requests on GitHub
University of Nevada Las Vegas(内华达大学拉斯维加斯分校)
本文提出AgenticFlict数据集,用于研究AI编码代理生成的合并冲突问题,揭示了AI生成代码中合并冲突的频率和影响,强调了对AI辅助软件开发中集成挑战的理解需求。
2026-05-12 cs.AI cs.HC cs.SE
Detecting Semantic Conflicts using Static Analysis
本文提出一种基于静态分析的技术,用于检测版本控制合并中未被发现的动态语义冲突,在99个实验单元上评估,其F1分数和召回率优于动态分析方法,精确度与静态分析或定理证明方法相当。
2023-10-06 cs.SE
Automatically detecting the conflicts between software requirements based on finer semantic analysis
Beihang University(北京航空航天大学)
背景:软件需求之间的冲突给产品开发带来了不确定性。已经提出了一些很好的方法来识别这些冲突。然而,它们通常需要用特定的模板表示的软件需求和/或依赖于其他外部资源,这在实践中通常很难为许多项目构建。目的:本文提出了一种基于语义分析的需求冲突检测器(FSARC),通过分析自然语言功能需求的语义成分,自动检测它们之间的冲突。方法:建立一个统一的八元组形式的功能需求语义元模型。然后,我们提出了算法来自动分析的语言特征的需求和注释的语义元素的语义模型的建设。根据文本模式和语义依赖性,定义了七种冲突类型及其启发式检测规则。最后,设计并实现了冲突检测算法。结果如下:在四个需求数据集上的实验表明,FSARC的冲突检测召回率接近100%,平均准确率为83.88%。结论:我们提供了一个有用的工具来检测自然语言功能需求之间的冲突,以提高最终的需求集的质量。此外,该方法能够将自然语言的功能需求转换为8个语义元组,不仅可以用于需求间冲突的检测,还可以用于需求间关联的构建等任务。
2021-03-03 cs.AI cs.SE
Asymmetric Repository Lineage Modeling and Verifier-Guided Coordination in Concurrent AI Coding Agents
MIT CSAIL(麻省理工学院计算机科学与人工智能实验室);Harvard Medical School(哈佛医学院);Managent
本研究针对并发AI编码智能体的协调问题,提出非对称仓库谱系建模与验证器引导协调方法,通过MERGEGYM基准测试验证了谱系分诊在冲突预测和调度中的有效性,并强调在重放成本低时应验证一切。
2026-10-06 cs.SE
CONGRA: Benchmarking Automatic Conflict Resolution
The University of Hong Kong(香港大学)
针对软件合并冲突解决缺乏难度分级与大规模基准的问题,提出ConGra基准方案,基于代码操作分类构建含44,948个冲突的数据集,评估LLMs并发现两个反直觉现象。
2024-09-21 cs.LG cs.SE
AI Agent Pull Requests on GitHub: Frequency, Structure, and Merge Conflict Rates
Harvard Medical School(哈佛医学院);Massachusetts General Hospital(麻省总医院);Massachusetts Institute of Technology(麻省理工学院);DevRev AI LLC(DevRev AI有限责任公司)
利用AIDev-pop数据集对AI代理编写的拉取请求并发情况进行大规模实证分析,发现特定时间重叠下部分仓库有协同活动的请求对,多数为同一代理,还研究了合并冲突率及冲突类型。
2026-10-06 cs.AI cs.MA cs.SE
Uma técnica para a quantificação do esforço de merge
使用版本控制系统的开发人员可以与其他开发人员并行工作,然后合并他们的版本。有时这些合并会失败,需要手动干预来解决冲突。一些研究旨在分析合并失败,然而,在文献中缺乏工具的支持,以衡量合并的努力,危及这种分析。在本文中,我们提出了一种技术及其配套工具,用于分析Git存储库并提供与合并工作相关的指标。我们在五个项目中评估了我们的工具,结果显示返工和浪费工作发生在大约10%到30%的项目中。此外,这些努力的平均行动几乎相同。
2018-11-22 cs.SE
BDCI: Behavioral Driven Conflict Identification
源代码管理(SCM)系统通过提供诸如版本控制、分支和冲突检测之类的特性来支持软件支持软件演化。尽管存在这些功能,支持并行软件开发往往是有限的。SCM系统只能解决开发人员在同时处理多个并行分支时可能引入的冲突的一个子集。事实上,SCM系统可以检测到文本冲突,这是由相同的程序位置的并发修改所产生的,但它们无法检测到高阶冲突,这是由不同的程序位置的并发修改所产生的,这些程序位置一旦合并就会产生程序错误行为。更高阶的冲突很难检测,修复起来也很昂贵,因为它们可能是由明显不相关的更改的干扰引起的。在本文中,我们提出了行为驱动的冲突识别(BDCI),一种新的冲突检测方法。BDCI通过生成和比较行为模型,将冲突分析从源代码级别转移到程序行为级别。基于行为模型的分析可以揭示干扰的变化,只要它们被引入到SCM系统中,即使它们没有引入任何文本冲突。为了评估所提出的方法的有效性和成本,我们开发了BDCIf,一个特定的BDCI实例,专门用于检测与程序功能行为相关的高阶冲突。通过分析多个版本的Git和Redis收集的证据表明,BDCIf可以有效地检测高阶冲突,并报告更改可能如何干扰。
2017-08-04 cs.SE
Do code refactorings influence the merge effort?
本研究通过关联规则挖掘分析40,248次合并提交,发现代码重构会增加合并工作量,且重构越多、并行重构时工作量越大,提示改进合并与重构推荐工具。
2023-05-10 cs.SE
The Effect of Pointer Analysis on Semantic Conflict Detection
本文通过在两个数据集上比较有无指针分析的语义冲突静态分析,发现指针分析虽减少超时和误报,却显著增加漏报并损害召回率与 F1,因此提出应研究混合分析技术。
2025-07-26 cs.SE
Evolutionary Conflict Checking
在软件演化过程中,现有功能可能会受到新更改的不利影响,这就是众所周知的回归错误。维护高质量的测试套件有助于防止回归错误,而这在很大程度上取决于开发人员。基于新的变更不断地扩充现有的测试套件可以帮助开发人员调查这些新变更的影响。通过比较生成的测试用例在两个版本上的执行情况,现有技术能够检测出一些常见的错误。然而,缺少对现有程序行为的新更改的需求和预言。此外,当新的更改没有与其他未更改的代码进行充分检查时,可能会引入新的错误,最终无法满足开发人员对更改的真实意图。在本文中,我们提出了进化冲突检查的概念,以验证新的变化。通过提取新变更所反映的开发者意图,将线性演化过程转化为一个三向合并过程,检测现有行为与新变更之间的冲突。我们的实验结果表明,进化冲突检查是能够适用于保证软件质量的变化。
2020-09-22 cs.SE
ACoRe: Automated Goal-Conflict Resolution
IMDEA Software Institute(IMDEA软件研究所);Universidad Politécnica de Madrid(马德里理工大学);SnT, University of Luxembourg(卢森堡大学科学与技术学院);Universidad Nacional de Río Cuarto and CONICET(里奥夸尔托国立大学和阿根廷国家科学研究委员会)
本文提出ACoRe,首个自动为线性时态逻辑形式化需求规格说明中的目标冲突提出消解方案的方法,集成多目标搜索算法,在25个案例上验证有效。
2023-03-09 cs.SE
RefFilter: Improving Semantic Conflict Detection via Refactoring-Aware Static Analysis
针对协作软件开发中语义冲突检测误报率高的问题,提出感知重构的工具RefFilter,通过自动识别并剔除行为保持的代码重构降低误报,实验验证其精度提升显著,可有效优化合并支持。
2025-10-02 cs.SE
Supervised Semantic Similarity-based Conflict Detection Algorithm: S3CDA
针对软件需求工程中自动检测冲突的挑战,提出两阶段算法S3CDA,通过语义相似度识别潜在冲突需求对并结合领域特定实体验证,在特定领域数据集上优于GPT-4o等大型语言模型。
2025-07-14 cs.SE
Evaluation of Version Control Merge Tools
本文评估了版本控制合并工具,提出结合测试套件、已删除分支和错误成本的新实验方法,并据此创建了一个在多数假设下优于以往工具的合并工具。
2024-10-13 cs.SE
Automatic Debugging Support for UML Designs
大型软件系统的设计需要严格应用涵盖软件过程所有阶段的软件工程方法。在早期的设计阶段进行调试是非常重要的,因为后期的错误修复是昂贵的。在本文中,我们描述了一种方法,便于调试的UML需求和设计。统一建模语言(UML)是一组用于软件系统的面向对象设计的符号。我们已经开发出一种算法,翻译的形式,注释序列图到结构化的状态图的需求规格。该算法检测序列图之间的冲突和领域知识中的不一致。在从序列图合成状态图之后,这些状态图通常受到手动修改和细化。通过使用我们的合成算法的“向后”方向,我们能够将对状态图的修改映射回需求(序列图),并检查那里的冲突。反馈给用户的冲突检测我们的算法是基于演绎的调试的需求和域理论在非常早期的发展阶段的基础。我们的方法允许生成关于为什么存在冲突以及规范的哪些部分受到影响的解释。
2000-11-13 cs.PL cs.SE
A transfer learning approach for automatic conflicts detection in software requirement sentence pairs based on dual encoders
School of Mathematics and Computer Science, Yunnan Minzu University(云南民族大学数学与计算机科学学院)
本文提出基于SBERT和SimCSE的TSRCDF-SS框架,通过双编码器和混合损失优化提升软件需求句对冲突检测的准确率和跨领域迁移性能。
2025-11-28 cs.AI cs.SE
WizardMerge -- Save Us From Merging Without Any Clues
针对 Git 文本合并易产生错误且开发者缺乏排查线索的问题,本文提出 WizardMerge,通过文本与 LLVM-IR 层面的代码块依赖分析提供修复建议,并在五个大型项目的 227 个冲突上验证其可减少 23.85% 合并时间。
2024-07-03 cs.ET cs.PL cs.SE
Human-competitive Patches in Automatic Program Repair with Repairnator
修理工是个机器人。它不断监控在持续集成开源软件过程中发现的软件错误,并尝试自动修复这些错误。如果它成功合成了一个有效的补丁,Repairnator会向人类开发人员推荐这个补丁,伪装成一个假的人类身份。到目前为止,Repairnator已经能够生成5个补丁,这些补丁被人类开发人员接受并永久合并到代码库中。这是软件工程中程序自动修复研究中人类竞争力的一个里程碑。
2018-10-13 cs.SE
Detecção de Conflitos Semânticos com Testes Gerados por LLM
本研究针对语义冲突检测中传统工具假阴性率高的问题,提出将基于Code Llama 70B的LLM测试生成工具集成到SMAT中,实验显示该方法在复杂场景下虽有挑战但展现出改进检测效果的潜力。
2025-08-13 cs.SE
Rover: Context-aware Conflict Resolution with LLM
The University of Hong Kong(香港大学);Wuhan University(武汉大学)
本文提出Rover,一种结合程序分析和大语言模型的冲突解决系统,通过多层代码属性图获取上下文感知提示,提升代码合并的准确性与效率。
2026-05-17 cs.AI cs.SE
Collaborative Real Time Coding or How to Avoid the Dreaded Merge
在团队中合作开发软件的软件工程师通常必须手动合并他们对模块(例如类)所做的更改,因为更改与另一个工程师对同一个或另一个模块(例如供应商类)所做的更改相冲突。这是由于工程师单独编辑代码,并通过源代码控制或软件配置管理系统(SCM)松散地协调他们的工作。这项工作提出,以消除几乎所有的需要,手动合并最近的变化,提出了一个协作的实时的编码方法。在这种方法中,其他人可以实时的看到对代码的有效更改,但是中间更改(导致代码无法编译)会阻止其他工程师进行与被修改的实体(例如方法)相关的更改,同时允许他们在系统的大部分工作。协同实时的编辑系统的研究已经有20多年的历史。在这一领域的研究主要集中在协同文本和图形编辑。在这项工作中,我们解决了设计一个协作的实时的编码系统所面临的挑战,以及目前的主要差异相比,纯文本的协作编辑。然后,我们提出了一个原型插件的Eclipse集成开发环境(IDE),允许进行协作编码。
2015-04-25 cs.SE
Repairnator patches programs automatically
修理工是个机器人。它不断监控在持续集成开源软件过程中发现的软件错误,并尝试自动修复这些错误。如果它成功地合成了一个有效的补丁,Repairnator会向人类开发人员推荐这个补丁,并伪装成一个假的人类身份。到目前为止,Repairnator已经能够生成被人类开发人员接受并永久合并到代码库中的补丁。这是软件工程中程序自动修复研究中人类竞争力的一个里程碑。
2022-05-04 cs.SE
Transfer learning for conflict and duplicate detection in software requirement pairs
Toronto Metropolitan University(多伦多都会大学)
研究旨在通过自动识别软件需求中的冲突和重复来提高软件开发效率,核心方法是设计基于Transformer的SR-BERT架构并进行多阶段微调,主要贡献是在多数据集测试中表现良好,促进了冲突和重复检测自动化。
2026-07-28 cs.LG cs.SE
Model-Based Debugging using Multiple Abstract Models
本文介绍了一个自动调试框架,它依赖于基于模型的推理技术来定位程序中的错误。特别是,基于模型的诊断,连同一个抽象的解释为基础的冲突检测机制来推导诊断,这对应于可能的故障程序。设计信息和部分规范应用于指导模型修订过程,该过程允许自动检测和校正结构故障。
2003-09-17 cs.AI cs.SE
ConE: A Concurrent Edit Detection Tool for Large Scale Software Development
Microsoft Research(微软研究院);Delft University of Technology(代尔夫特理工大学);Facebook
现代复杂的软件系统正在不断扩展和调整。负责此任务的开发人员可能来自不同的团队或组织,并且可能分布在世界各地。这可能使跟踪其他开发人员正在做什么变得困难,这可能导致多个开发人员同时编辑相同的代码区域。反过来,这可能导致难以合并的更改,甚至合并冲突,难以检测的逻辑错误,重复工作和浪费开发人员的生产力。为了解决这个问题,我们探讨了这个问题的程度在拉请求为基础的软件开发模型。我们研究了微软六个大型存储库半年的变化,其中每个月至少创建1,000个拉取请求。我们发现在不同拉取请求中同时编辑的文件更有可能引入错误。基于这些发现,我们设计、实现和部署了一个名为ConE(并发编辑检测器)的服务,该服务可以主动检测包含并发编辑的拉取请求,以帮助缓解由它们引起的问题。ConE被设计成可扩展的,并且在仍然标记相关的并发编辑的文件的同时最小化错误警报。ConE的关键概念包括检测拉取请求之间的重叠程度,以及识别很少并发编辑的文件。为了评估ConE,我们报告了它在Microsoft内部234个存储库上的操作部署。ConE评估了26,000个拉取请求,并就冲突的更改提出了775条建议,这些建议在超过70%(554)的案例中被评为有用。从对48名用户的采访中,我们了解到他们认为ConE可以节省解决冲突和避免重复工作的时间,超过90%的人打算继续每天使用该服务。
2021-09-25 cs.LG cs.PL cs.SE