Viendo diferencias

Uno de los requisitos más comunes en el desarrollo de proyectos es ver qué ha cambiado. Puede querer ver las diferencias entre dos revisiones del mismo archivo, o las diferencias entre dos archivos separados. TortoiseSVN provee una herramienta integrada llamada TortoiseMerge para ver las diferencias entre archivos de texto. Para ver las diferencias entre archivos de imagen, TortoiseSVN también tiene una herramienta llamada TortoiseIDiff. Por supuesto, puede utilizar su herramienta de diferencias favorita si lo desea.

Diferencias de archivos

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 archivo. Luego, seleccione TortoiseSVNDiferenciar con URL. En el siguiente diálogo, especifique la URL del repositorio con la que quiere comparar su archivo 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 archivo. 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 archivo 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 archivos 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 archivos 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 archivos, 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 archivos

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

If the files to compare are not located in the same folder, use the command TortoiseSVNDiff later to mark the first file for diffing, then browse to the second file and use TortoiseSVNDiff with "path/of/marked/file". To remove the marked file, use the command TortoiseSVNDiff later again, but hold down the Ctrl-modifier while clicking on it.

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

Si desea ver las diferencias entre un archivo en su copia de trabajo, y un archivo en cualquier repositorio de Subversion, puede hacerlo directamente en el explorador seleccionando el archivo y pulsando la tecla Mayúsculas mientras hace click con el botón derecho para obtener el menú contextual. Seleccione TortoiseSVNDiferenciar con URL. Puede hacer lo mismo para una carpeta de copia de trabajo. TortoiseMerge muestra esas diferencias de la misma forma que muestra un archivo de parche - una lista de archivos cambiados que puede ver de uno en uno.

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

Las herramientas proporcionadas con TortoiseSVN no le permiten ver las diferencias entre jerarquías de directorios. Pero si tiene una herramienta externa que soporte esta funcionalidad, puede utilizarla. En “Herramientas externas de diferencias/fusión” le contamos algunas de las herramientas que hemos utilizado.

Si ha configurado una herramienta de diferenciado de terceros, puede utilizar Mayúsculascuando seleccione el comando Diferenciar para utilizar la herramienta alternativa. Lea “Configuración de programas externos” para saber más sobre configurar otras herramientas de diferenciación.

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 4.29. 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 archivos que han cambiado y le permite comparar o ver la autoría de cada uno individualmente utilizando el menú contextual.

Puede exportar un árbol de cambios, lo que es útil si necesita enviar a alguien la estructura de su árbol de proyecto, pero conteniendo sólo los archivos que han cambiado. Esta operación trabaja sólo sobre los archivos seleccionados, por lo que necesitará seleccionar los archivos de interés - normalmente eso significa todos - y luego Menú contextualExportar selección a.... Se le preguntará por una ruta donde guardar el árbol de cambios.

También puede exportar la lista de archivos cambiados a un archivo de texto utilizando Menú contextualGuardar lista de archivos seleccionados a....

Si desea exportar la lista de archivos y también las acciones (modificado, añadido, borrado), puede hacerlo utilizando Menú contextualCopiar la selección al portapapeles.

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 archivos es muy larga, puede utilizar la caja de búsqueda para reducir la lista a los nombres de archivos 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 archivos de código fuente C debería introducir .c en vez de *.c.

Diferenciando imágenes utilizando TortoiseIDiff

Hay muchas herramientas disponibles para diferenciar archivos 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 archivo de imagen. Por eso es por lo que hemos creado TortoiseIDiff.

Figura 4.30. El visor de diferencias de imágenes

El visor de diferencias de imágenes


TortoiseSVNDiff para cualquiera de los formatos de imágenes comunes iniciará TortoiseIDiff para mostrar las diferencias entre las imágenes. Por defecto las imágenes se muestran una al lado de la otra, pero puede utilizar el menú Ver o la barra de herramientas para cambiar a una vista arriba-abajo, o si lo prefiere, puede superponer las imágenes y simular que está usando una caja de luces.

Naturalmente, también puede acercar y alejar el zoom y moverse por la imagen. También puede desplazarse por la imagen símplemente arrastrando con el botón izquierdo. Si selecciona la opción Unir las imágenes, los controles de desplazamiento (barras de desplazamiento, rueda del ratón) de ambas imágenes quedan unidos.

Un cuadro de información de imagen le muestra detalles sobre el archivo de imagen, tales como el tamaño en pixeles, la resolución y la profundidad de color. Si la caja le molesta, utilice VerInformación de imagen para ocultarla. Puede obtener la misma información en una etiqueta de ayuda si pasa el cursor por encima de la barra de título de la imagen.

Cuando las imágenes se superponen, la intensidad relativa de las imágenes (alpha blend) se controla mediante un control deslizante en el lado izquierdo. Puede pulsar en cualquier parte del deslizador para establecer el blend directamente, o puede arrastrar el deslizador para cambiar el blend de forma interactiva. Ctrl+Mayúsculas-Rueda para cambiar el blend.

El botón debajo del deslizador cambia entre fusión 0% y 100%, y si hace doble click en el botón, la fusión cambia automáticamente cada segundo hasta que pulse el botón de nuevo. Esto puede ser útil cuando busca múltiples cambios pequeños.

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.

Diferenciando los documentos de Office

When you want to diff non-text documents you normally have to use the software used to create the document as it understands the file format. For the commonly used Microsoft Office and Open Office suites there is indeed some support for viewing differences and TortoiseSVN includes scripts to invoke these with the right settings when you diff files with the well-known file extensions. You can check which file extensions are supported and add your own by going to TortoiseSVNSettings and clicking Advanced in the External Programs section.

Problemas con Office 2010

If you installed the Click-to-Run version of Office 2010 and you try to diff documents you may get an error message from Windows Script Host something like this: ActiveX component can't create object: word.Application. It seems you have to use the MSI-based version of Office to get the diff functionality.

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 is a great open-source diff tool which can also handle directories.

Perforce Merge

Perforce is a commercial RCS, but you can download the diff/merge tool for free. Get more information from Perforce.

KDiff3

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

SourceGear DiffMerge

SourceGear Vault is a commercial RCS, but you can download the diff/merge tool for free. Get more information from SourceGear.

ExamDiff

ExamDiff Standard es gratuito. Puede manejar archivos 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 to ExamDiff Pro, this is an excellent shareware diff tool which can handle directory diffs and unicode. Download it from 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.

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