53 Entwickler-Tools, immer aktuell — neue Upstream-Releases landen innerhalb von Stunden in apt. Discord beitreten

📅 Ab ist für den apt-Mirror ein Abo erforderlich. Preise ansehen · 🆓 Es gibt einen für immer kostenlosen Spiegel

🔀 Neuestes difftastic unter Ubuntu installieren

Ein struktureller Diff, der Dateien nach Syntax vergleicht statt Zeile für Zeile

Neueste Version: 0.70.0 · aktualisiert 2026-08-18
QuelleVersion
deb.griffo.io0.70.0 ✅
Offizielles Ubuntu🚫 nicht paketiert
← Zurück zur Startseite
📌 Installation auf einer bestimmten Version? Ubuntu 22.04 (jammy) · Ubuntu 24.04 (noble) · Ubuntu 25.10 (questing) · Ubuntu 26.04 (resolute)

Was ist difftastic?

difftastic — der Befehl heißt difft — ist ein struktureller Diff. Statt Zeilen zu vergleichen, parst es beide Dateien mit tree-sitter, baut für jede Seite einen Syntaxbaum und zeigt, welche Syntax sich wirklich geändert hat. Neu eingerückte Blöcke, umgebrochene Argumentlisten oder eine verschobene Klammer sind kein Diff mehr — während eine umbenannte Variable in neu formatiertem Code sofort auffällt.

🚀 Warum neueste Versionen wichtig sind: difftastic versteht Code über tree-sitter-Grammatiken, und die kommen mit jedem Release. Ein ein Jahr alter Build parst die Sprachen von letztem Jahr: neuere Syntax wird zu Parse-Fehlern, und eine Datei mit zu vielen Parse-Fehlern fällt still auf einen normalen zeilenbasierten Diff zurück — genau das Verhalten, gegen das du difftastic installiert hast. Jedes Release verbessert außerdem Algorithmus und Speicherverbrauch bei großen Dateien.

⚡ Hauptfunktionen von difftastic

🌳 Syntaxbewusste Diffs

Beide Seiten werden zu Syntaxbäumen geparst und als Struktur verglichen — Formatierungsrauschen verschwindet, echte Änderungen treten hervor.

🧩 Über 30 Sprachen

Rust, Python, TypeScript, Go, C, C++, Java, Ruby, YAML, JSON, HTML, CSS, Markdown und viele mehr — difft --list-languages zeigt die vollständige Liste mit Endungen.

🪟 Nebeneinander oder inline

--display wählt side-by-side, side-by-side-show-both, inline oder maschinenlesbares JSON.

🔗 Drop-in für Git

Funktioniert als externer Diff-Befehl für git und genauso für Mercurial, Jujutsu und Fossil.

🚦 Ehrlicher Fallback

Unbekannte Endung, riesige Datei oder zu viele Parse-Fehler: dann ein zeilenbasierter Diff mit Wort-Hervorhebung statt eines Fehlers.

🗂️ Verzeichnisse und Konflikte

Zwei Verzeichnisse in einem Befehl vergleichen — oder difftastic eine Datei mit Merge-Konfliktmarkierungen geben und den Konflikt als Diff lesen.

🚀 Immer den offiziellen Archiven voraus: Debian und Ubuntu frieren Paketversionen zum Release-Zeitpunkt ein — dieses Repository veröffentlicht neue Upstream-Releases in der Regel innerhalb weniger Stunden. Ein einfaches apt upgrade hält dich auf der neuesten Version.

📦 Installation aus deb.griffo.io

Befehle ausführen

Schritt 1: Repository hinzufügen

sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt update
install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt update

🆓 Es gibt einen für immer kostenlosen Spiegel. deb-free.griffo.io liefert Pakete für immer kostenlos — ohne Konto, ohne Abo, höchstens 2 Monate hinter Upstream, Sicherheitsfixes sofort. Derzeit enthält er cliamp, Ghostty, lazydocker, Oh My Posh und Zed; difftastic ist nicht dabei, deshalb führt heute nur das Repository oben dorthin — auf Anfrage kann es aufgenommen werden.

So funktioniert der kostenlose Spiegel →

Schritt 2: difftastic installieren

# Neuestes difftastic installieren
sudo apt install difftastic

# Installation überprüfen
difft --version
# Neuestes difftastic installieren
apt install difftastic

# Installation überprüfen
difft --version

Schritt 3: In git einbinden

# Zwei Dateien direkt vergleichen
difft old.py new.py

# Oder git difftastic für jeden Diff aufrufen lassen
git config --global diff.external difft

# Der normale git diff ist weiter nur eine Option entfernt
git --no-ext-diff diff

# Die Handbuchseite liegt dem Paket bei
man difft

🎯 Grundlegende Verwendungsbeispiele

Dateien und Verzeichnisse vergleichen:

# Zwei Dateien, nebeneinander
difft before.rs after.rs

# Eine Spalte, näher an klassischer Diff-Ausgabe
difft --display inline before.ts after.ts

# Zwei Verzeichnisse, unveränderte Dateien überspringen
difft old/ new/ --skip-unchanged --sort-paths

# Welche Sprachen versteht dieser Build?
difft --list-languages

Als git-Diff verwenden:

# Einmalig: difftastic nur für diesen Diff
GIT_EXTERNAL_DIFF=difft git diff

# Strukturelle Diffs durch die gesamte Historie
GIT_EXTERNAL_DIFF=difft git log -p --ext-diff

# Als difftool registrieren
git config --global difftool.difftastic.cmd 'difft "$LOCAL" "$REMOTE"'
git difftool --tool difftastic

# Ein git-Alias für ein strukturelles Log
git config --global alias.dlog '!GIT_EXTERNAL_DIFF=difft git log -p --ext-diff'

Ausgabe anpassen:

# Änderungen nur in Kommentaren ignorieren
difft --ignore-comments a.go b.go

# Mehr Kontext, Tabs als zwei Leerzeichen
difft --context 5 --tab-width 2 a.py b.py

# Für Skripte: gab es überhaupt eine syntaktische Änderung?
difft --check-only --exit-code a.json b.json

# Standardwerte für jeden Aufruf über die Umgebung
export DFT_DISPLAY=inline DFT_BACKGROUND=light

🔧 Tool-Integrationen

difftastic fügt sich in die Werkzeuge ein, die dir schon Diffs zeigen:

  • git: GIT_EXTERNAL_DIFF, diff.external oder ein difftool-Eintrag — mit --ext-diff auch für git log -p und git show
  • Jujutsu: als Diff-Befehl in jj setzen und strukturelle Diffs in einem Git-kompatiblen Workflow bekommen
  • Mercurial und Fossil: beide akzeptieren einen externen Diff-Befehl — dasselbe Binary bedient jedes Repository
  • Umgebungsvariablen: DFT_DISPLAY, DFT_BACKGROUND, DFT_WIDTH und Verwandte setzen deine Standards einmalig
  • CI und Skripte: --check-only mit --exit-code beantwortet „hat sich die Syntax geändert?“ ohne Ausgabe, und --display json ist zum Parsen gemacht

🚀 Warum deb.griffo.io?

📊 Repository-Vergleich:
  • Offizielles Ubuntu: paketiert difftastic überhaupt nicht — auf einem Standardsystem gibt es nichts zu installieren
  • cargo install difftastic: aktuell, aber ein langer Build mit vielen tree-sitter-Grammatiken, außerhalb von apt und ohne Handbuchseite
  • Upstream-Tarball: das offizielle Binary, das du für jedes Release von Hand neu holst
  • deb.griffo.io: neueste Version mit automatischen Updates

📦 Paket-Build-Repository

Die Ubuntu-Pakete werden in diesem GitHub-Repository automatisch gebaut und gepflegt:

🔗 Verwandte Pakete

Ebenfalls verfügbar über deb.griffo.io:

🎯 Ideal für: das Review eines Refactorings, das Code verschoben hat, das Lesen eines Formatter-Commits ohne Augenschmerzen, das Unterscheiden einer echten API-Änderung von einer Neueinrückung — und jede Codebasis, in der „die ganze Datei hat sich geändert“ meist nicht stimmt.

📦 Neueste Releases aus diesem Repository

❓ Häufig gestellte Fragen

Ist difftastic in den offiziellen Ubuntu-Paketquellen?

Nein, difftastic ist nicht in den offiziellen Ubuntu-Archiven paketiert. Dieses Repository ist derzeit die einzige apt-Quelle und liefert difftastic 0.70.0.

Wie installiere ich das neueste difftastic unter Ubuntu?

Fügen Sie das deb.griffo.io-Repository einmalig hinzu (Anleitung oben) und führen Sie dann aus: sudo apt install difftastic. Neue Releases kommen über das normale sudo apt upgrade.

Sind die Pakete signiert und wie werden sie gebaut?

Jedes Paket ist mit dem GPG-Schlüssel des Repositories (EA0F721D231FDD3A0A17B9AC7808B4DD62C41256) signiert und wird aus Upstream-Releases in öffentlichen GitHub-Repositories gebaut, die jeder einsehen kann.

Welche Ubuntu-Versionen werden unterstützt?

Ubuntu 22.04 Jammy, 24.04 Noble, 25.10 Questing und 26.04 Resolute.