veilletech.fr
2 nov. Feed du jour
#05 OUTILS Article

OmniDiff : un diff qui lit aussi PDF, polices, images

Git ne dira plus seulement que le fichier binaire a changé.

OmniDiff compare le code par structure et les fichiers binaires selon ce qu'ils contiennent : pixels, glyphes, pages, membres d'archive. Il se branche sur Git et Jujutsu et reste rapide sur 2 302 cas de test. Son auteur publie aussi ce qui manque : la précision visée n'est pas encore atteinte.

2 min de lecturedébutantvidéo 1:28
Partager
Sommaire6 sections
  1. Ce qui se passe
  2. Ce qu'il compare
  3. Comment s'y prendre
  4. Les chiffres, et leurs limites
  5. Avant de l'adopter
  6. À retenir

Ce qui se passe

Marko Ivankovic publie OmniDiff, outil de comparaison écrit en Rust et présenté sur Hacker News le 1er novembre. Il part d'un constat : git diff ne dit rien d'un PDF ou d'une police, et marque des lignes entières lors d'un simple remaniement. Pour concevoir l'outil, l'auteur dit avoir étudié les dépôts listés par Gentoo et résolu à la main un échantillon de 2 000 diffs.

Ce qu'il compare

Comment s'y prendre

Terminal
brew install ivankovic/omnidiff/omnidiff
# ou, avec Rust 1.92 et un compilateur C :
cargo install --locked omnidiff

omnidiff git configure
git difftool --tool=omnidiff

git diff et git log -p ne lancent jamais l'interface plein écran : ils passent par un pager. Pour y obtenir le rendu en texte :

Terminal
GIT_EXTERNAL_DIFF=omnidiff git diff

Jujutsu a son propre assistant, omnidiff jj configure, et exige le mode file-by-file en configuration manuelle. Pour les scripts et la CI, on dispose de --headless, de --mode json et de --exit-code, qui renvoie 1 quand les fichiers diffèrent.

Les chiffres, et leurs limites

Toutes ces mesures viennent de l'auteur, sur un Intel Core i7-1370P avec 32 Go de RAM.

Avant de l'adopter

À retenir

Pour une revue de code, le gain se vérifie en quelques minutes sur votre dernier gros remaniement. Pour les dépôts qui versionnent des binaires, comme des polices ou des PDF, c'est là que le manque était le plus net.

Source : ivankovic/omnidiff sur GitHub, présenté sur Hacker News le 1er novembre 2026. Source en anglais.