En este tema se describe cómo WinMerge detecta y muestra las diferencias entre archivos de texto y se muestran operaciones sencillas de comparación y combinación de archivos. Consulte Comparación en formato hexadecimal para obtener información relacionada con los archivos hexadecimales.
Normalmente comparamos dos archivos que guardan alguna relación entre sí, como dos versiones que se han editado en momentos diferentes o por personas distintas. Si se comparan dos archivos de este tipo, normalmente se pueden observar algunas similitudes y también identificar varios tipos de diferencias: caracteres y palabras distintos, líneas diferentes e incluso bloques enteros de texto que difieren entre sí. Sin embargo, intentar comprender todas las diferencias entre dos archivos revisándolos en su editor habitual puede resultar tedioso y propenso a errores. Las herramientas especializadas en comparación y combinación de archivos, como WinMerge, están diseñadas para que este trabajo resulte más sistemático y eficiente.
Una sencilla herramienta de comparación que la mayoría de la gente ha utilizado es el corrector ortográfico: recorre sistemáticamente el documento, resalta las palabras que no figuran en su diccionario y le ayuda a resolver cada error ortográfico. Sin embargo, fijarse únicamente en los caracteres y las palabras no es una forma eficaz de comprender las diferencias entre varios archivos. Por este motivo, muchas herramientas de comparación de diferencias utilizan las líneas como unidad básica de comparación.
WinMerge también utiliza las líneas como unidad básica de comparación. Las palabras y los caracteres no se tratan de forma individual en las operaciones de comparación y combinación. A modo de ejemplo, imaginemos dos archivos que son idénticos salvo por una línea que difiere. Si las dos versiones de la línea tienen cuatro palabras diferentes y una de ellas contiene un espacio de más, entonces decimos que el archivo tiene una diferencia, no cinco.
Si resulta más rápido comparar líneas que palabras, a veces también resulta útil tratar un bloque completo de líneas como una sola diferencia, en lugar de comparar una línea cada vez. Como veremos más adelante, detectar diferencias de varias líneas también hace que la combinación sea más eficiente.
En esta sección se ofrece un ejemplo sencillo que muestra cómo comparar las diferencias entre líneas de dos archivos en WinMerge:
Con un editor de texto, cree dos archivos con los nombres y contenidos que se muestran aquí, procurando mantener exactamente las palabras y los saltos de línea:
Fichero1:
Comparar palabras y caracteres es lento. En cambio, WinMerge compara líneas. Créalo o no.
Fichero2:
Es lento comparar palabras. WinMerge compara líneas. Lo crea o no.
Inicie WinMerge. Por ejemplo, haga doble clic en el
acceso directo de WinMerge en el
escritorio.
En el cuadro de diálogo "Seleccione archivos y carpetas" especifique
Archivo1 como 1er archivo y
Archivo2 como 2º archivo y haga
clic en . La ventana de comparación de
archivos muestra los dos archivos en los paneles izquierdo y derecho de la
siguiente manera:

Estos elementos se describen con más detalle en Comparación y combinación de archivos de texto. A continuación se indican algunas características que debe tener en cuenta en este ejemplo:
El mensaje que aparece en la barra de estado, en la parte inferior de la ventana de WinMerge, indica que se han detectado dos diferencias.
Los bloques de diferencias se marcan con el color de fondo de las diferencias (dorado, por defecto).
Se pueden activar las diferencias de línea para resaltar el texto modificado dentro de los bloques de diferencias, utilizando el color de fondo de la palabra (amarillo claro, por defecto).
Las líneas idénticas no están marcadas: tienen fondo blanco, como la tercera línea del ejemplo.
Fíjese en que, en el panel de comparación de la izquierda, la segunda línea
contiene texto, mientras que el otro panel muestra una línea gris en blanco
en el mismo lugar. Esta línea en blanco no existe en el archivo fuente
File2, así que, ¿qué hace ahí en WinMerge?
WinMerge inserta una o varias líneas grises en blanco en una de las
versiones de una comparación cuando la otra versión tiene más líneas. Estas
líneas grises vacías no representan líneas en blanco en el archivo de
origen; son solo marcadores de posición en la pantalla. El objetivo de las
líneas de separación es mantener alineadas verticalmente las versiones
izquierda y derecha de las diferencias. Así, en nuestro ejemplo, el texto
WinMerge compares lines aparece en paralelo
en la ventana de comparación, aunque en los archivos de origen se encuentren
en líneas diferentes. Esto hace que sea más fácil comparar las diferencias
en WinMerge que en un editor convencional.
Una consecuencia de las líneas en blanco es que ambos paneles de la ventana de comparación de archivos muestran siempre el mismo número total de líneas, aunque sus archivos de origen no lo hagan.
Ahora que ya sabe cómo detecta y muestra WinMerge las diferencias puede utilizar las funciones de comparación de forma eficaz, tal y como se muestra en los siguientes pasos.
Haga clic en el botón
in de la barra de herramientas (o
pulseAlt+Enter). Si
este botón no está activo (por ejemplo, si el cursor se encuentra en otra
línea), haga clic en el botón
Primera diferencia (o pulse Alt+Inicio) en su lugar.
Al seleccionar una diferencia, las dos versiones se cargan en el panel de diferencias. El panel de diferencias muestra qué líneas forman parte de la diferencia y le permite examinarlas de forma aislada del resto del archivo. En nuestro ejemplo, la Diferencia 1 tiene claramente dos líneas.

Haga clic en el botón
de la barra de herramientas (o
pulseAlt+Enter). De
este modo, se omite la línea idéntica (que no supone ninguna diferencia) y
se selecciona la última línea.
Ha llegado al final del archivo y ha tenido la oportunidad de examinar todas las diferencias. Este ha sido un ejemplo sencillo, solo había dos diferencias y hay otras formas de comparar diferencias en WinMerge. Sin embargo, demuestra la eficacia de utilizar los controles de navegación de WinMerge.
El objetivo de la combinación es unir los cambios de dos archivos en uno solo. La combinación amplía los conceptos y funciones utilizados en la operación de comparación: le recomendamos que lea la sección anterior antes de comenzar esta sección. Además de detectar las diferencias entre dos versiones de un archivo, resolvemos dichas diferencias y guardamos el resultado en una única versión objetivo.
La combinación de archivos permite el desarrollo simultáneo y es una tarea habitual en entornos de trabajo en equipo. Por ejemplo, supongamos que usted y otra persona desean añadir código al mismo archivo de programa al mismo tiempo. Ambos comienzan con una copia idéntica del archivo, pero durante el desarrollo crean versiones distintas que ya no son idénticas. En algún momento, las dos versiones deben combinarse en una sola que conserve los cambios de cada colaborador.
La combinación puede ser solicitada (o incluso iniciada) por sistemas de control de versiones como Subversion y Git. Por ejemplo, su sistema de control de versiones podría impedirle enviar cambios a su repositorio debido a conflictos de combinación. Un conflicto puede producirse si otra persona ha guardado una versión diferente del mismo archivo mientras usted trabajaba en la suya y el sistema de control de versiones no ha podido combinar automáticamente las diferencias. Si eso ocurre, es posible que tenga que combinar las versiones en conflicto antes de volver a intentar enviar su versión. Muchos sistemas cuentan con herramientas integradas para comparar diferencias y combinar archivos, pero quizá prefiera utilizar WinMerge.
Al igual que al comparar, utilice los controles de la barra de herramientas de WinMerge (o los atajos de teclado) para recorrer sistemáticamente las diferencias. Resuelva cada diferencia copiando el candidato izquierdo o del derecho al otro lado. Cuando haya resuelto todas las diferencias, WinMerge le indicará que todas las diferencias se han resuelto (las versiones son idénticas) y habrá terminado la combinación.
Este breve ejercicio muestra cómo utilizar los controles de la ventana de comparación de archivos de forma sistemática para combinar los archivos sencillos que se han mostrado anteriormente:
Haga clic en el botón
de la barra de herramientas para
seleccionar la primera diferencia. Si este botón no está activo, haga clic
en el botón
en su lugar.
Haga clic en el botón
para combinar la Diferencia 1 del
Archivo1 con el Archivo2. En el
Archivo2 observe que la única línea de diferencia se ha
sustituido por las dos líneas del Archivo1, y que la
línea en blanco grisácea ya no aparece.
Haga clic en el botón
para seleccionar la Diferencia
2. Esto resulta más sencillo que buscar y seleccionar la diferencia
manualmente. Resulta especialmente útil si desea revisar todas las
diferencias sin que se le pase ninguna por alto accidentalmente.
Haga clic en el botón
para combinar la Diferencia 2 del
Archivo2 con el Archivo1.
El mensaje que informa que los archivos son idénticos le indica que la combinación se ha completado:

Haga clic en para cerrar el mensaje. El estado
del mensaje Diferencia cambia de Diferencia 1 de
1 a Idéntico.
PulseCtrl+Spara guardar los cambios.
Aunque es muy sencillo, este ejemplo muestra una metodología básica que puede utilizar para realizar una comparación de cualquier extensión, combinando cada diferencia una a una hasta obtener el resultado deseado.
Usted decide dónde se guardan los resultados de la comparación. La ventana de comparación de archivos de WinMerge no cuenta con un panel de resultados independiente, como ocurre con algunas herramientas de comparación. Por lo tanto, la estrategia más sencilla consiste en guardar los cambios en uno, dos o tres archivos de origen. PulseCtrl+S en cualquier momento para guardar los cambios actuales en todos los archivos. También puede hacer clic en → , → o → para guardar solo un archivo.
Para escribir en un tercer archivo en lugar de en cualesquiera de los archivos de origen, utilice → . Por ejemplo, el archivo de destino podría ser el archivo de diferencias o de conflictos generado por un sistema de control de versiones.
Del mismo modo, en la línea de comandos de WinMerge, puede dejar sin
modificaciones las dos o las tres versiones de origen utilizando el
argumento opcional outputfile, tal y como se describe en
Línea de comandos.