Merge-Bench
收藏资源简介:
Merge-Bench是由亚马逊和华盛顿大学的研究团队构建的用于评估大语言模型解决版本控制合并冲突能力的基准数据集。该数据集包含从1439个GitHub公开仓库中提取的7938个真实合并冲突片段,覆盖11种编程语言,每个冲突片段均包含左、右、基版本文本及开发者提交的解决方案作为真实标签。数据集的构建过程完全自动化,通过分析仓库分支历史、利用Git工具重放合并操作并应用严格的过滤规则(如上下文行数限制、令牌数约束)来确保数据质量,无需任何人工标注。该数据集旨在为自动化合并冲突解决工具提供训练与评估基础,推动软件工程中版本控制智能化的发展,解决传统合并工具难以处理的语义冲突问题。
Merge-Bench is a benchmark dataset developed by a research team from Amazon and the University of Washington, designed to evaluate the ability of large language models (LLMs) to resolve version control merge conflicts. This dataset comprises 7,938 real merge conflict snippets extracted from 1,439 public GitHub repositories, spanning 11 programming languages. Each conflict snippet contains the left, right, and base version texts, alongside the developer-submitted resolution as the ground-truth label. The entire dataset construction process is fully automated: it analyzes repository branch histories, replays merge operations via Git tools, and applies strict filtering criteria such as context line limits and token count constraints to guarantee data quality, with no manual annotation required at all. This dataset aims to provide a foundational resource for training and evaluating automated merge conflict resolution tools, advance the development of intelligent version control in software engineering, and address semantic conflict issues that conventional merge tools struggle to handle.
数据集概述:Merge-Bench-Builder
该工具包用于从Git仓库构建合并冲突数据集,旨在帮助研究人员和开发者研究合并冲突解决模式。
数据集可用性
- 预构建数据集:Merge-Bench 数据集已公开发布,地址为 https://github.com/benedikt-schesch/Merge-Bench/releases/tag/main。
- 覆盖范围:包含来自超过1000个仓库的11种编程语言的合并冲突。
核心功能
- 从Git历史中构建可定制的合并冲突数据集。
- 从真实仓库中提取和分析合并冲突。
- 按编程语言、星标数等标准过滤仓库。
- 计算冲突指标并分析解决模式。
- 支持多种数据集大小及可配置参数。
- 从Reaper数据集下载和处理仓库。
数据集构建流程
- 仓库选择:从Reaper数据集下载仓库元数据,按语言、星标数和质量指标过滤,并按指定标准采样。
- 合并冲突提取:克隆选定仓库,分析Git历史找到合并提交,提取合并冲突及其解决方案,处理冲突块和上下文。
- 数据集处理:清理和规范化冲突数据,计算指标和统计信息,将数据分割为训练/测试集,生成最终数据集文件。
- 过滤:验证提取的冲突,移除重复和低质量样本,确保格式和结构正确。
支持的语言
- C、C++、C#
- Python、Ruby、PHP
- JavaScript、TypeScript
- Go、Rust
构建脚本与使用
- 主脚本:
dataset_build_scripts/build_all_datasets.sh,用于为所有支持的语言构建数据集。 - 自定义采样:通过
src/sample_reaper_repos.py和src/download_github_repos.py实现高级自定义仓库采样。 - 脚本选项:
-g:运行仓库下载和冲突提取步骤。-m:计算数据集指标和统计信息。-b:构建最终处理后的数据集。
项目结构
dataset_build_scripts/:包含主构建脚本和按语言区分的脚本。src/:核心源代码,包含数据集构建、仓库下载、冲突提取、合并发现、冲突块处理和指标计算等模块。input_data/:输入数据集和仓库列表。merges/:生成的输出数据集目录。
许可证
该项目基于 MIT 许可证。




