Repolode
Wilfred

Wilfred/difftastic

Herramienta de diff para la línea de comandos que compara archivos mediante sus árboles sintácticos, no línea por línea, para mostrar con precisión el código reformateado y reubicado.

Estrellas
26,159
Forks
533
Issues abiertos
282
Último commit
anteayer

¿Qué es?

Difftastic es una herramienta de diff estructural que compara dos archivos según su sintaxis, en lugar de hacerlo línea por línea. Analiza ambos archivos y luego resalta solo los elementos sintácticos que realmente cambiaron, incluso si el código se reformateó o se distribuyó en más líneas.

Solo considera significativo el espacio en blanco cuando el lenguaje así lo determina, por lo que reconoce los cambios que afectan únicamente a la indentación. Para los tipos de archivo que no reconoce, recurre a un diff por líneas con resaltado de palabras. La salida muestra una vista en paralelo pensada para que la lean las personas, no para generar parches.

Difftastic funciona con git y otros sistemas de control de versiones, y puede resolver marcadores de conflictos de merge comparando ambos lados. También incluye un modo de solo comprobación que devuelve un código de estado según haya cambiado la sintaxis o no.

Funciones clave

  • 01Compara el código mediante su árbol sintáctico para evitar diffs ruidosos al reformatearlo.
  • 02Es compatible con más de 30 lenguajes de programación.
  • 03Resalta los cambios en los espacios en blanco solo cuando la sintaxis hace que sean significativos.
  • 04Funciona con git y otros sistemas de control de versiones.
  • 05Compara ambos lados de un conflicto para mostrar las diferencias entre ellos.
  • 06Incluye un modo de solo comprobación para detectar cambios sintácticos sin generar un diff completo.

Casos de uso

  • Revisar commits en los que se reformateó o reestructuró el código.
  • Leer diffs de refactorizaciones grandes en lenguajes como Rust, JavaScript o HTML.
  • Comprobar en CI si dos versiones de un archivo difieren sintácticamente.
  • Inspeccionar conflictos de merge en paralelo y distinguir con más claridad los cambios reales.

Inicio rápido

  1. 1

    Instala difftastic siguiendo la guía de instalación del manual

  2. 2

    Compara dos archivos con difft

    difft foo1.c foo2.c

Antes de usarlo

  • El rendimiento empeora considerablemente con archivos que tienen muchos cambios y puede consumir mucha memoria.
  • Siempre considera significativo el orden, por lo que los elementos reordenados, como los de un conjunto o las claves sin ordenar, se muestran como cambios.
  • No realiza fusiones ni genera parches que se puedan aplicar más adelante.

En colecciones

Temas

Preguntas frecuentes

¿Qué es difftastic?
Herramienta de diff para la línea de comandos que compara archivos mediante sus árboles sintácticos, no línea por línea, para mostrar con precisión el código reformateado y reubicado. Difftastic es una herramienta de diff estructural que compara dos archivos según su sintaxis, en lugar de hacerlo línea por línea. Analiza ambos archivos y luego resalta solo los elementos sintácticos que realmente cambiaron, incluso si el código se reformateó o se distribuyó en más líneas.
¿difftastic es gratuito? ¿Qué licencia tiene?
difftastic es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿difftastic sigue mantenido?
Mantenimiento activo. El último commit de difftastic fue el 4 nov 2026.
¿Para qué puedo usar difftastic?
Revisar commits en los que se reformateó o reestructuró el código. Leer diffs de refactorizaciones grandes en lenguajes como Rust, JavaScript o HTML. Comprobar en CI si dos versiones de un archivo difieren sintácticamente. Inspeccionar conflictos de merge en paralelo y distinguir con más claridad los cambios reales.
¿Cómo se instala difftastic?
Instala difftastic siguiendo la guía de instalación del manual Compara dos archivos con difft: difft foo1.c foo2.c
¿Dónde consigo difftastic?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/Wilfred/difftastic

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados