53 herramientas de desarrollo, siempre actualizadas — cada nueva versión upstream llega a apt en cuestión de horas. Únete al Discord

📅 A partir del , el mirror de apt requerirá una suscripción. Ver precios · 🆓 Existe un espejo gratis para siempre

🔀 Instalar la última versión de difftastic en Ubuntu

Una herramienta de diff estructural que compara por sintaxis, no línea a línea

Última versión: 0.70.0 · actualizado 2026-08-18
FuenteVersión
deb.griffo.io0.70.0 ✅
Ubuntu oficial🚫 no empaquetado
← Volver al inicio

¿Qué es difftastic?

difftastic —el comando es difft— es una herramienta de diff estructural. En lugar de comparar líneas, analiza ambos archivos con tree-sitter, construye un árbol de sintaxis por cada lado e informa de qué piezas de sintaxis han cambiado de verdad. Reindentar un bloque, reajustar una lista de argumentos o mover una llave deja de ser un cambio, mientras que una variable renombrada entre código reformateado salta a la vista.

🚀 Por qué importa la última versión: difftastic entiende tu código gracias a las gramáticas de tree-sitter, que se distribuyen con cada versión. Una compilación de hace un año analiza los lenguajes del año pasado: la sintaxis nueva se convierte en errores de análisis, y un archivo con demasiados errores cae en silencio a un diff por líneas, precisamente lo que querías evitar al instalar difftastic. Cada versión también mejora el algoritmo y el consumo de memoria en archivos grandes.

⚡ Funciones clave de difftastic

🌳 Diffs conscientes de la sintaxis

Ambos lados se analizan como árboles de sintaxis y se comparan como estructura: el ruido de formato desaparece y los cambios reales destacan.

🧩 Más de 30 lenguajes

Rust, Python, TypeScript, Go, C, C++, Java, Ruby, YAML, JSON, HTML, CSS, Markdown y muchos más: difft --list-languages imprime la lista completa con sus extensiones.

🪟 En paralelo o en línea

--display elige side-by-side, side-by-side-show-both, inline o JSON legible por máquinas.

🔗 Reemplazo directo en Git

Funciona como comando de diff externo para git, y también para Mercurial, Jujutsu y Fossil.

🚦 Retroceso honesto

Extensión desconocida, archivo enorme o demasiados errores de análisis: cae a un diff por líneas con resaltado por palabras en lugar de fallar.

🗂️ Directorios y conflictos

Compara dos directorios en un solo comando, o pásale un archivo con marcas de conflicto de fusión y lee el conflicto como un diff.

🚀 Siempre por delante de los archivos oficiales: Debian y Ubuntu congelan las versiones de los paquetes cuando publican una release; este repositorio publica las nuevas versiones upstream normalmente en cuestión de horas. Un simple apt upgrade te mantiene en la última versión.

📦 Instalación desde deb.griffo.io

Ejecutar los comandos

Paso 1: Añadir el repositorio

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

🆓 Existe un espejo gratis para siempre. deb-free.griffo.io sirve paquetes gratis para siempre: sin cuenta, sin suscripción, como máximo 2 meses por detrás del upstream, correcciones de seguridad inmediatas. Ahora mismo incluye cliamp, Ghostty, lazydocker, Oh My Posh y Zed; difftastic no está entre ellas, así que hoy el repositorio de arriba es la única forma de instalarlo — pídelo y puede añadirse.

Cómo funciona el espejo gratuito →

Paso 2: Instalar difftastic

# Instalar la última versión de difftastic
sudo apt install difftastic

# Verificar la instalación
difft --version
# Instalar la última versión de difftastic
apt install difftastic

# Verificar la instalación
difft --version

Paso 3: Integrarlo en git

# Comparar dos archivos directamente
difft old.py new.py

# O dejar que git llame a difftastic en cada diff
git config --global diff.external difft

# El git diff normal sigue a una opción de distancia
git --no-ext-diff diff

# La página de manual viene en el paquete
man difft

🎯 Ejemplos básicos de uso

Comparar archivos y directorios:

# Dos archivos, en paralelo
difft before.rs after.rs

# Una sola columna, más cerca del diff tradicional
difft --display inline before.ts after.ts

# Dos directorios, omitiendo los archivos que no cambiaron
difft old/ new/ --skip-unchanged --sort-paths

# ¿Qué lenguajes entiende esta compilación?
difft --list-languages

Usarlo como diff de git:

# Puntual: difftastic solo para este diff
GIT_EXTERNAL_DIFF=difft git diff

# Diffs estructurales por todo el historial
GIT_EXTERNAL_DIFF=difft git log -p --ext-diff

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

# Un alias de git para un log estructural
git config --global alias.dlog '!GIT_EXTERNAL_DIFF=difft git log -p --ext-diff'

Ajustar la salida:

# Ignorar los cambios que solo tocan comentarios
difft --ignore-comments a.go b.go

# Más contexto, y tabulaciones de dos espacios
difft --context 5 --tab-width 2 a.py b.py

# Para scripts: ¿hubo algún cambio sintáctico?
difft --check-only --exit-code a.json b.json

# Valores por defecto para cada invocación, desde el entorno
export DFT_DISPLAY=inline DFT_BACKGROUND=light

🔧 Integraciones con otras herramientas

difftastic encaja en las herramientas que ya te muestran diffs:

  • git: GIT_EXTERNAL_DIFF, diff.external o una entrada difftool; con --ext-diff también en git log -p y git show
  • Jujutsu: configúralo como comando de diff en jj y tendrás diffs estructurales en un flujo compatible con Git
  • Mercurial y Fossil: ambos aceptan un comando de diff externo, así que el mismo binario sirve para todos tus repositorios
  • Variables de entorno: DFT_DISPLAY, DFT_BACKGROUND, DFT_WIDTH y compañía fijan tus valores por defecto
  • CI y scripts: --check-only con --exit-code responde «¿cambió la sintaxis?» sin imprimir el diff, y --display json está hecho para analizarse

🚀 ¿Por qué elegir deb.griffo.io?

📊 Comparativa de repositorios:
  • Ubuntu oficial: no empaqueta difftastic en absoluto: un sistema recién instalado no tiene nada que instalar
  • cargo install difftastic: actualizado, pero es una compilación larga con muchas gramáticas de tree-sitter, queda fuera de apt y sin página de manual
  • Tarball upstream: el binario oficial, descargado a mano en cada versión
  • deb.griffo.io: última versión con actualizaciones automáticas

📦 Repositorio de compilación del paquete

Los paquetes de Ubuntu se compilan y mantienen automáticamente en este repositorio de GitHub:

🔗 Paquetes relacionados

También disponibles en deb.griffo.io:

🎯 Ideal para: revisar una refactorización que movió código, leer el commit de un formateador sin quedarte bizco, distinguir un cambio real de API de una reindentación y cualquier base de código donde «cambió todo el archivo» suele ser mentira.

📦 Últimas versiones publicadas por este repositorio

❓ Preguntas frecuentes

¿Está difftastic en los repositorios oficiales de Ubuntu?

No, difftastic no está empaquetado en los archivos oficiales de Ubuntu. Este repositorio es actualmente la única fuente apt y ofrece difftastic 0.70.0.

¿Cómo instalo el último difftastic en Ubuntu?

Añade el repositorio deb.griffo.io una sola vez con las instrucciones de arriba y ejecuta: sudo apt install difftastic. Las nuevas versiones llegan con el sudo apt upgrade habitual.

¿Los paquetes están firmados y cómo se compilan?

Cada paquete está firmado con la clave GPG del repositorio (EA0F721D231FDD3A0A17B9AC7808B4DD62C41256) y se compila a partir de versiones upstream en repositorios públicos de GitHub que cualquiera puede inspeccionar.

¿Qué versiones de Ubuntu son compatibles?

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