Herramienta de diff en Rust que compara código según su estructura con tree-sitter y también imágenes, fuentes, archivos comprimidos y PDF.
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
Instala difftastic siguiendo la guía de instalación del manual
- 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
Un paginador con resaltado de sintaxis para la salida de git, diff, grep y blame, configurado como reemplazo directo del paginador predeterminado de git.
Visor interactivo de diferencias en la terminal para revisar cambios de código de Git, Jujutsu, Sapling, PR de GitHub y archivos sin procesar, con notas integradas de agentes.
Una herramienta CLI que abre un visor web local al estilo de GitHub para revisar diffs de commits de git y copiar comentarios como prompts para IA.
Un paginador de Git que muestra diferencias en paralelo y con resaltado de sintaxis en la terminal, al estilo de GitHub.
Un Skill para agentes que convierte los cambios de Git en una página HTML de revisión de una sola pantalla, agrupados por propósito de negocio en lugar de por archivo.