OmniDiff - Content-aware Git-Difftool in Rust
Show HN: OmniDiff – Opensource, super fast, content aware Git difftool, in Rust

OmniDiff ist ein quelloffenes, blitzschnelles Git-Difftool, das Änderungen nicht Zeile für Zeile, sondern inhaltsbewusst vergleicht. Statt ganzer Codeblöcke markiert es nur die tatsächlich veränderten Teile und erkennt selbst bei PDFs, Webfonts, Bildern und Archiven, was sich geändert hat – Dinge, bei denen git diff sonst nur „Binary files differ“ meldet. Mit tree-sitter parst es 25 Sprachen strukturell, läuft in unter 100 ms und lässt sich nahtlos als git difftool oder für Jujutsu einrichten. Eine interaktive TUI, JSON-Output und Headless-Modus für CI machen es vielseitig einsetzbar.
OmniDiff malt nur die Teile, die sich wirklich geändert haben – sum(numbers) und len(numbers) statt der ganzen Zuweisung, und Zahlen erscheinen als verschoben statt neu geschrieben.
- bita_nidir
Wow, ich habe mir oft ein Tool wie dieses gewünscht. Danke!
Da die meisten Leute die meiste Zeit einfach drauflos klicken und loslegen (basierend auf jahrzehntelanger Forschung, n=1), füge ich einfach den Link für weitere Beispiele hinzu: https://ivankovic.github.io/omnidiff/showcase/content.html
- nickjj
Delta hat eine wirklich schöne Art, Diffs mit seinem diff-so-fancy-Modus anzuzeigen; es ähnelt mehr der GitHub-Oberfläche, wo nicht nur die Zeile anders eingefärbt wird, sondern auch ein anderer Farbton verwendet wird, um die Zeichen hervorzuheben.
Hier gibt es einen Screenshot und ein Video davon, die ich vor einer Weile geschrieben habe: https://nickjanetakis.com/blog/awesome-git-diffs-with-delta-...
In der Readme und der Webversion von OmniDiff habe ich keine Möglichkeit gesehen, das zu tun.
In einem anderen Kommentar hast du erwähnt, dass OmniDiff viel besser als Delta ist, und du hast gesagt: „Etwa ein Drittel der Diffs ist deutlich besser.“ Kannst du einige Beispiele dafür geben? Ich habe noch nie erlebt, dass Delta bei einem Diff versagt.
Außerdem hat Delta ein Paket für Arch in seinen offiziellen Repos. Für Leute, die einfach nur eine „es funktioniert“-Erfahrung wollen, ist das ein ziemlich großer Gewinn. Mit Delta kann dasselbe Paket auf Debian, Arch und macOS mit Brew über Standard-Paketmanager auf die gleiche Weise installiert werden. Bei OmniDiff gibt es drei verschiedene Installationswege (manuelles deb-Paket auf Debian, manuelles Kompilieren des Pakets auf Arch und brew install auf einem Mac). Nur mal zum Nachdenken, als jemand, der öffentliche Dotfiles hat, die in diesen drei Umgebungen funktionieren, würde ich allein deshalb OmniDiff überspringen.
- arkenflame
Wirklich gut gemacht, das gefällt mir sehr. Es erzeugt viel minimalere Diffs als andere Tools, die ich ausprobiert habe.
Eine Funktion, die ich von difftastic vermisse, ist die Anzeige von Diffs nebeneinander auf breiten Terminals und vereinheitlicht, wenn sie schmal sind.