Diff-XYZ: Un Benchmark per la Valutazione della Comprensione dei Diff
Diff-XYZ: A Benchmark for Evaluating Diff Understanding
October 14, 2025
Autori: Evgeniy Glukhov, Michele Conti, Egor Bogomolov, Yaroslav Golubev, Alexander Bezzubov
cs.AI
Abstract
La gestione affidabile dei diff di codice è fondamentale per gli agenti che modificano e refattorizzano repository su larga scala. Presentiamo Diff-XYZ, un benchmark compatto per la comprensione dei diff di codice con tre task supervisionati: applicazione (codice vecchio + diff → codice nuovo), anti-applicazione (codice nuovo - diff → codice vecchio) e generazione di diff (codice nuovo - codice vecchio → diff). Le istanze nel benchmark sono triple ⟨codice vecchio, codice nuovo, diff⟩ estratte da commit reali in CommitPackFT, abbinate a metriche automatiche e un protocollo di valutazione chiaro. Utilizziamo il benchmark per condurre uno studio empirico mirato sul formato unified diff ed eseguire un confronto incrociato tra diverse rappresentazioni di diff. I nostri risultati rivelano che diversi formati dovrebbero essere utilizzati in base al caso d'uso e alla dimensione del modello. Ad esempio, rappresentare i diff in formato search-replace è efficace per modelli più grandi nello scenario di generazione di diff, ma non si adatta bene all'analisi dei diff e a modelli più piccoli. Il benchmark Diff-XYZ è una base riutilizzabile per valutare e migliorare la gestione dei diff negli LLM che può favorire lo sviluppo futuro di formati di diff e modelli per la modifica del codice. Il dataset è pubblicato su 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.