Diff-XYZ: Um Benchmark para Avaliação da Compreensão de Diffs
Diff-XYZ: A Benchmark for Evaluating Diff Understanding
October 14, 2025
Autores: Evgeniy Glukhov, Michele Conti, Egor Bogomolov, Yaroslav Golubev, Alexander Bezzubov
cs.AI
Resumo
O tratamento confiável de diffs de código é fundamental para agentes que editam e refatoram repositórios em larga escala. Apresentamos o Diff-XYZ, um benchmark compacto para compreensão de diffs de código com três tarefas supervisionadas: aplicar (código antigo + diff → código novo), anti-aplicar (código novo - diff → código antigo) e geração de diff (código novo - código antigo → diff). As instâncias no benchmark são triplas 〈código antigo, código novo, diff〉 extraídas de commits reais do CommitPackFT, emparelhadas com métricas automáticas e um protocolo de avaliação claro. Utilizamos o benchmark para realizar um estudo empírico focado no formato de diff unificado e executar uma comparação cruzada de diferentes representações de diff. Nossos resultados revelam que diferentes formatos devem ser usados dependendo do caso de uso e do tamanho do modelo. Por exemplo, representar diffs no formato de busca e substituição é bom para modelos maiores no cenário de geração de diff, mas não é adequado para análise de diff e modelos menores. O benchmark Diff-XYZ é uma base reutilizável para avaliar e melhorar o tratamento de diffs em LLMs, podendo auxiliar o desenvolvimento futuro de formatos de diff e modelos que editam código. O conjunto de dados está publicado no HuggingFace Hub: https://huggingface.co/datasets/JetBrains-Research/diff-xyz.
English
Reliable handling of code diffs is central to agents that edit and refactor
repositories at scale. We introduce Diff-XYZ, a compact benchmark for code-diff
understanding with three supervised tasks: apply (old code + diff
rightarrow new code), anti-apply (new code - diff rightarrow old code),
and diff generation (new code - old code rightarrow diff). Instances in
the benchmark are triples langle old code, new code,
diff rangle drawn from real commits in CommitPackFT, paired with
automatic metrics and a clear evaluation protocol. We use the benchmark to do a
focused empirical study of the unified diff format and run a cross-format
comparison of different diff representations. Our findings reveal that
different formats should be used depending on the use case and model size. For
example, representing diffs in search-replace format is good for larger models
in the diff generation scenario, yet not suited well for diff analysis and
smaller models. The Diff-XYZ benchmark is a reusable foundation for assessing
and improving diff handling in LLMs that can aid future development of diff
formats and models editing code. The dataset is published on HuggingFace Hub:
https://huggingface.co/datasets/JetBrains-Research/diff-xyz.