Aunque no me mola nada picar código – lo sé, soy informático, pero he acabado tirando por otros derroteros – voy a tener que trastear durante una temporada con C. Para unas pruebas iniciales de un proyecto que tenía hace tiempo parado necesito saber qué diferencias había entre diferentes versiones de los ficheros que salvé – no lo tenía muy bien organizado – iba a recurrir al famoso [tag]diff[/tag], la utilidad en modo texto que permite comparar dos ficheros y que te dice las diferencias entre uno y otro.
Pero al rescate ha llegado un post de lo más útil sobre herramientas que van más allá de diff y que proponen un entorno visual para esta tarea. El autor de Core Dump ha realizado una lista muy curiosa y completa, en la que se incluye uno de los programitas de moda, Meld. Traduzco para aquellos que no piloten inglés, pero que conste que como en otras ocasiones, el mérito es del autor original, que es el que se ha documentado a conciencia para el tema. ¡Gracias!
1. Línea de comandos
1.1 Sdiff
sdiff fichero1 fichero 2
Esta es una herramienta mucho más elegante que la espartana diff si lo que buscáis es una utilidad que podáis usar en línea de comandos y que muestre las diferencias entre dos ficheros de texto. Si lo utilizáis con ficheros grandes lo mejor es que redireccionéis la salida con un pipe a un comando less, tal que así:
sdiff fichero1 fichero2 | less
La desventaja: la salida es únicamente de lectura, no se puede editar o mezclar los ficheros. Pero es una gran herramienta para una inspección visual rápida de este tipo.
1.2 Vimdiff
vimdiff fichero1 fichero2
Este comando es capaz de abrir un número ‘n’ de archivos en un entorno vim dividido en ventanas verticales. Además tiene resaltados en color para especificar qué partes del texto difieren. La edición es posible. Se trata de un entorno completo vim, de modo que todos los atajos de teclado disponibles en este editor están disponibles.
1.3 Emacs
M-x ediff-buffers
El equivalente en emacs de vimdiff que tiene la opción de copiar a la ventana de la izquierda, a la de la derecha, realizar un fichero conjunto con los cambios y mucho más. Es un modo especial de ediff que tiene sus propias combinaciones de teclado. Pulsar en la interrogación ‘?’ para obtener ayuda sobre esos atajos.
También se resaltan las diferencias con colores, y la navegación para diferenciar regiones es sencilla.
Se pueden comparar y mezclar un máximo de 3 ficheros. Tanto la versión de línea de comandos como la que tiene interfaz gráfica se pueden utilizar.
2. Herramientas visuales
2.1 Meld
Puede comparar dos o tres ficheros y permite la edición de los mismos. Las diferencias se actualizan de forma dinámica. Puede trabajar además con sistemas de control de versiones como CVS, SVN, etc. Hasta es posible comparar carpetas y directorios.
2.2 Guiffy
Es una herramienta visual de diferenciación y mezcla de ficheros. Tiene una vista dividida en tres paneles para comparar dos ficheros en la parte superior y un tercer panel para mostrar el fichero de salida mezclando ambos ficheros. Existen versiones para Windows, Linux y Mac OS X. Se pueden comparar carpetas.
Estoy seguro de que hay más herramientas aún (como por ejemplo xxdiff) pero no tengo tampoco muchas ganas de analizarlas todas (son demasiado feas) 🙂
Actualización:
2.3 kdiff3
(Gracias a un comentario anónimo) Una excelente utilidad del entorno KDE. Me encantó. Tiene la opción de comparar 2 ó 3 ficheros. Tiene un panel extra para poder comprobar cómo queda el fichero combinado. Las diferencias entre directorios y la combinación de ellos también es factible.
Monta un subversion por favoooooor……
Pero que friki eres. Que noooo!! Además, no debería ni contestarte. No distes señales de vida para la fiestuqui de inauguración…