Capítulo 1. Introducción

Cuando dos o más personas están trabajando sobre un archivo y lo van utilizando alternativamente, puede ser difícil ver qué cambios se han hecho en una nueva versión o copia del archivo. Abrir la copia nueva y el original enfrentándolas en la aplicación utilizada para crearlas puede ser una solución, pero muy laboriosa, consume tiempo y puede inducir a errores. Es en este punto donde un programa que muestre las diferencias puede ser útil.

Como se podría esperar, un nombre adecuado para un programa de este tipo podría ser «diff». Como puede comprobar, el programa diff está instalado en la mayor parte de los sistemas basados en Linux® y se utiliza para este propósito. Los desarrolladores utilizan diff con frecuencia, como una herramienta de línea de órdenes, para mostrar las diferencias entre versiones de un archivo de código fuente. Sin embargo, el uso de diff no está limitado a mostrar las diferencias en los archivos de código fuente, y puede utilizarse también en muchos tipos de archivo basados en texto.

Utilizar diff desde la línea de órdenes puede ser confuso, aprender la sintaxis de la orden diff y descifrar la salida puede desconcertar a mucha gente. Es aquí donde Kompare entra en juego. Proporciona una interfaz gráfica para el programa diff. La interfaz muestra los archivos fuente y destino uno al lado del otro con todas las diferencias resaltadas de forma automática. Desde este punto de partida, los cambios en un archivo puede aplicarse secuencialmente en el otro archivo en una base selectiva y controlada. No todos los cambios tienen porqué aplicarse y si aplica un cambio siempre puede 'deshacerse'. Cuando se hayan aplicado todos los cambios necesarios, podrán guardarse y se mostrarán de la forma habitual en la aplicación original utilizada para crear el archivo.

Además de mostrar las diferencias entre los archivos fuente y destino, Kompare puede utilizar para crear y ver un archivo especial llamado un 'diff'. Este archivo captura las diferencias entre las dos fuentes en un solo archivo que puede utilizarse para ver y aplicar cambios a cualquier otra copia del archivo. Por ejemplo, si dos personas están editando un documento. La primera persona desea hacer cambios y enviar los cambios hechos a la segunda persona. Normalmente, la primera persona enviará una copia completa del documento modificado a la segunda persona, quien debería comparar el documento modificado situándolo al lado de la versión sin modificar. El proceso para esto es más parecido al que hemos descrito en el párrafo anterior. Con Kompare la primera persona debería hacer una copia local del archivo que se quiere modificar y a continuación realizar los cambios y comparar el original y la copia modificada. Ahora, utilizando Kompare puede crearse un archivo diff que contendrá solo los cambios efectuados. Este puede enviarse a la segunda persona en lugar de un archivo completo que contenga los cambios.

Utilizando Kompare la segunda persona puede ver el archivo diff, compararlo con la copia local del documento y aplicar los cambios realizados por la primera persona. De esta forma el proceso puede realizarse para muchas versiones del documento, de forma que cada persona pueda hacer cambios, crear los diffs, distribuirlos y aplicarlos. Este proceso es lo que se suele llamar «parcheado», un término que se toma del programa llamado «patch» (parche, en inglés) que es otra herramienta de la línea de órdenes especialmente diseñada con el objetivo de aplicar los archivos diff.

A veces sucede que varias personas editan un archivo a la vez. En esta situación es probable que estas personas hagan cambios en el documento exactamente al mismo tiempo. Esto crea un problema porque, sino se aplican con cuidado, unas personas pueden sobrescribir el trabajo de otras en el momento de aplicar los cambios que reciben. Afortunadamente los desarrolladores de los programas diff y patch tuvieron esto en cuenta y por ello estas herramientas no permiten que estos cambios se apliquen sin intervención manual. Cuando se alcanza este estado, se produce lo que se conoce como «conflicto». Kompare mostrará los conflictos que puede resolver manualmente, decidiendo qué cambios deberían aplicarse a qué archivo.

Kompare es también un gran programa para la comparación de cambios en archivos a nivel de carpeta. Cuando se utilizan para comparar carpetas, Kompare examina recursivamente las subcarpetas y los archivos que contengan para encontrar diferencias. En esta situación, cada archivo en el que se encuentren diferencias se abre automáticamente y se lista en Kompare, permitiéndose una navegación sencilla entre los diferentes archivos.