Viendo diferencias

One of the commonest requirements in project development is to see what has changed. You might want to look at the differences between two revisions of the same file, or the differences between two separate files. TortoiseSVN provides a built-in tool named TortoiseMerge for viewing differences of text files. For viewing differences of image files, TortoiseSVN also has a tool named TortoiseIDiff. Of course, you can use your own favourite diff program if you like.

Diferencias de ficheros

Cambios locales

Si desea ver qué cambios ha hecho usted en su copia de trabajo, simplemente utilice el menú contextual del explorador y seleccione TortoiseSVNDiferenciar.

Diferenciar con otra rama/etiqueta

Si desea ver qué ha cambiado en el tronco (si está trabajando en una rama) o en una rama específica (si está trabajando en el tronco), puede utilizar el menú contextual del explorador. Simplemente sostegna la tecla Mayúsculas mientras hace click con el botón derecho en el fichero. Luego, seleccione TortoiseSVNDiferenciar con URL. En el siguiente diálogo, especifique la URL del repositorio con la que quiere comparar su fichero local.

También puede utilizar el navegador de repositorios y seleccionar dos árboles para diferenciar, quizás dos ramas, o una rama/etiqueta y el tronco. Ahí, el menú contextual le permite compararlos utilizando Comparar revisiones. Lea más en “Comparando carpetas”.

Diferenciar desde una revisión anterior

Si desea ver las diferencias entre una revisión en concreto y su copia de trabajo, utilice el diálogo Registro de Revisiones, seleccione la revision de intereés, y luego seleccione Compar con la copia de trabajo desde el menú contextual.

Si desea ver la diferencia entre la última revision confirmada y su copia de trabajo, asumiendo que la copia de trabajo no se haya modificado, simplemente haga click con el botón derecho sobre el fichero. Luego, seleccione TortoiseSVNComparar con la revisión anterior. Esto realizará una diferenciación entre la revisión anterior a la fecha-de-la-última-confirmación (tal y como se registró en su copia de trabajo) y la BASE de la copia de trabajo. Esto le muestra el último cambio hecho al fichero que lo llevó al estado que ahora está viendo en su copia de trabajo. No mostrará cambios más nuevos que su copia de trabajo.

Diferenciar entre dos revisiones antiguas

Si desea ver las diferencias entre dos revisiones que ya se confirmaron, utilice el diálogo Registro de Revisiones y seleccione las dos revisiones que desea comparar (utilizando el modificador habitual Ctrl). Luego seleccione Comparar revisiones desde el menú contextual.

Si hizo esto desde el historial de revisiones de una carpeta, aparece un diálogo Comparar Revisiones, mostrando una lista de ficheros cambiados en esa carpeta. Lea más en “Comparando carpetas”.

Todos los cambios hechos en una confirmación

Si desea ver los cambios hechos a todos los ficheros en una revisión en particular de una vez, puede utilizar la salida diff unificado (formato de parche GNU). Esto le muestra sólo las diferencias con unas pocas líneas de contexto. Es más dificil de leer que una comparación visual de ficheros, pero le mostrará todos los cambios juntos. Desde el diálogo Registro de Revisiones, seleccione la revisión de interes, y luego seleccione Mostrar Diferencias como Diff Unificado desde el menú contextual.

Diferencias entre ficheros

Si desea ver las diferencias entre dos ficheros diferentes, puede hacerlo directamente en el explorador seleccionando ambos ficheros (utilizando el modificador habitual Ctrl). Luego desde el menú contextual del explorador seleccione TortoiseSVNDiferenciar.

Diferencias entre un fichero/carpeta en la copia de trabajo y una URL

If you want to see the differences between a file in your working copy, and a file in any Subversion repository, you can do that directly in explorer by selecting the file then holding down the Shift key whilst right clicking to obtain the context menu. Select TortoiseSVNDiff with URL. You can do the same thing for a working copy folder. TortoiseMerge shows these differences in the same way as it shows a patch file - a list of changed files which you can view one at a time.

Diferencias con información de autoría

Si desea ver no sólo las diferencias sino también el autor, revisión y la fecha en la que se hicieron los cambios, puede combinar los informes de diferencias y de autoría desde dentro del diálogo del historial de revisiones. Lea “Autoría de las diferencias” para más detalles.

Diferencias entre carpetas

The built-in tools supplied with TortoiseSVN do not support viewing differences between directory hierarchies. But if you have an external tool which does support that feature, you can use that instead. In “Herramientas externas de diferencias/fusión” we tell you about some tools which we have used.

If you have configured a third party diff tool, you can use Shift when selecting the Diff command to use the alternate tool. Read “Configuración de programas externos” to find out about configuring other diff tools.

Opciones de fín de línea y espacios en blanco

A veces en la vida de un proyecto puede querer cambiar los fines de línea de CRLF a LF, o puede querer cambiar la indentación de una sección. Desafortunadamente esto marcará un gran número de líneas como modificadas, incluso aunque no haya cambios en el significado del código. Estas opciones le ayudarán a administrar estos cambios cuando se comparan y aplican diferencias. Verá estas opciones en los diálogos Fusionar y Autoría, además de en la configuración de TortoiseMerge.

Ignorar finales de línea excluye los cambios que sólo se deban a diferencias en el estilo de fin de línea.

Comparar espacios en blanco incluye todos los cambios en la indentación y en los espacios en blanco interiores como líneas añadidas/eliminadas.

Ignorar cambios en espacios en blanco excluye los cambios que sólo se deben a un cambio en la cantidad o tipo de espacios en blanco, como por ejemplo cambios en la indentación o cambio de tabuladores a espacios. Añadir espacios en blanco donde antes no había, o eliminar completamente espacios en blanco aún se mostrará como un cambio.

Ignorar todos los espacios en blanco excluye todos los cambios que sólo se deban a espacios en blanco.

Naturalmente, cualquier línea cuyo contenido haya cambiado se incluye siempre en la diferenciación.

Comparando carpetas

Figura 5.23. El diálogo Comparar Revisiones

El diálogo Comparar Revisiones


Cuando seleccione dos árboles dentro del navegador de repositorios, o cuando seleccione dos revisiones de una carpeta en el diálogo de registro, puede Menú contextualComparar revisiones.

Este diálogo muestra una lista de todos los ficheros que han cambiado y le permite comparar o ver la autoría de cada uno individualmente utilizando el menú contextual.

También puede exportar la lista de ficheros cambiados a un fichero de texto, o puede exportar los propios ficheros cambiados a una carpeta. Esta operación funciona únicamente sobre los ficheros seleccionados, por lo que deberá seleccionar los ficheros de interés - normalmente eso quiere decir seleccionarlos a todos.

If you want to export the list of files and the actions (modified, added, deleted) as well, you can do that using the keyboard shortcuts Ctrl-A to select all entries and Ctrl-C to copy the detailed list to the clipboard.

El botón en la parte superior le permite cambiar la dirección de la comparación. Puede mostrar los cambios necesarios para ir de A a B, o si lo prefiere, de B a A.

Los botones con los números de revisión pueden utilizarse para cambiar a un rango de revisiones diferente. Cuando cambia el rango, la lista de ítems que difieren entre las dos revisiones se actualizará automáticamente.

Si la lista de nombres de ficheros es muy larga, puede utilizar la caja de búsqueda para reducir la lista a los nombres de ficheros que contengan un texto específico. Tenga en cuenta que se utiliza una búsqueda de texto simple, así que si desea restringir la lista a ficheros de código fuente C debería introducir .c en vez de *.c.

Diferenciando imágenes utilizando TortoiseIDiff

Hay muchas herramientas disponibles para diferenciar ficheros de texto, incluyendo nuestro propio TortoiseMerge, pero a veces nos encontramos en la situación de querer ver también cómo ha cambiado un fichero de imagen. Por eso es por lo que hemos creado TortoiseIDiff.

Figura 5.24. El visor de diferencias de imágenes

El visor de diferencias de imágenes


TortoiseSVNDiff for any of the common image file formats will start TortoiseIDiff to show image differences. By default the images are displayed side-by-side but you can use the View menu or toolbar to switch to a top-bottom view instead, or if you prefer, you can overlay the images and pretend you are using a lightbox.

Naturally you can also zoom in and out and pan around the image. You can also pan the image simply by left-dragging it. If you select the Link images together option, then the pan controls (scrollbars, mousewheel) on both images are linked.

An image info box shows details about the image file, such as the size in pixels, resolution and colour depth. If this box gets in the way, use ViewImage Info to hide it. You can get the same information in a tooltip if you hover the mouse over the image title bar.

When the images are overlaid, the relative intensity of the images (alpha blend) is controlled by a slider control at the left side. You can click anywhere in the slider to set the blend directly, or you can drag the slider to change the blend interactively. Ctrl+Shift-Wheel to change the blend.

The button above the slider toggles between two preset blends, indicated by the markers on either side of the blend slider. By default one is at the top and the other at the bottom, so the toggle button just switches between one image and the other. You can move the markers to choose the two blend values that the toggle button will use.

A veces quiere ver una diferencia en vez de un fundido. Puede que tenga las imágenes de dos revisiones de una placa de circuito impreso y desea ver qué pistas han cambiado. Si deshabilita el modo alpha blend, la diferencia se mostrará como un XOR de los valores de color del pixel. Las áreas sin cambios se mostrarán en blanco y los cambios se colorearán.

Herramientas externas de diferencias/fusión

Si las herramientas que le proporcionamos no son lo que necesita, pruebe alguno de los muchos programas de código abierto o comerciales disponibles. Cada uno tiene sus propios favoritos, y esta lista por supuesto no está completa, pero aquí hay algunas que debería considerar:

WinMerge

WinMerge es un muy buen visor de diferencias y herramienta de fusión de código abierto, que también puede manejar directorios.

Perforce Merge

Perforce es un RCS comercial, pero puede descargar la herramienta de diferencias/fusiones gratuitamente. Obtenga más información en Perforce.

KDiff3

KDiff3 es una herramienta de diferencias gratuita que también maneja directorios. Puede descargarla desde aquí.

ExamDiff

ExamDiff Standard es gratuito. Puede manejar ficheros pero no directorios. ExamDiff Pro es shareware y añade un número de ventajas que incluyen diferenciación de directorios y capacidades de edición. En ambos casos, la versión 3.2 y las siguientes pueden manejar también unicode. Puede descargarlas desde PrestoSoft.

Beyond Compare

Similar a ExamDiff Pro, esta es una herramienta shareware de diferencias que puede manejar diferenciación de directorios y unicode. Descárgela desde Scooter Software.

Araxis Merge

Araxis Merge is a useful commercial tool for diff and merging both files and folders. It does three-way comparison in merges and has synchronization links to use if you've changed the order of functions. Download it from Araxis.

SciTE

Este editor de texto incluye sintaxis coloreada para ficheros diff unificados, haciéndolos mucho más fáciles de leer. Descárgelo desde Scintilla.

Notepad2

Notepad2 está diseñado como un reemplazo del programa Bloc de Notas estándar de Windows, y se basa en el control de edición de código abierto Scintilla. Además de ser bueno para ver diffs unificados, es mucho mejor que el bloc de notas de Windows para la mayoría de trabajo. Descárgelo gratuitamente aquí.

Lea “Configuración de programas externos” para más información sobre cómo preparar TortoiseSVN para utilizar estas herramientas.