Diálogo de Registro de revisiones

Para cada cambio que haga y confirme, debería proporcionar un mensaje de registro de ese cambio. Así podrá averiguar después qué cambios hizo y por qué, y tendrá un registro detallado para su proceso de desarrollo.

El diálogo de Registro de revisiones recopila todos esos mensajes de registro y se los enseña. La pantalla se divide en tres paneles.

Pero hace mucho más que eso - le proporciona comandos del menú contextual que puede utilizar para obtener aún más información de la historia del proyecto.

Invocando el diálogo de Registro de revisiones

Figura 5.15. El diálogo de Registro de revisiones

El diálogo de Registro de revisiones


Hay varios lugares desde los que puede mostrar el diálogo de Registro:

  • Desde el submenú contextual de TortoiseSVN

  • Desde la página de propiedades

  • Desde el diálogo de Progreso después de que termine una actualización. En ese caso el diálogo de Registro sólo le mostrará aquellas revisiones que cambiaron desde su última actualización

Acciones del registro de revisiones

El panel superior tiene una columna Acciones que contiene iconos que resumen qué se ha hecho en esa revisión. Hay cuatro iconos diferentes, cada uno mostrado en su propia columna.

Si una revisión modificó un fichero o un directorio, se muestra el icono modificado en la primera columna.

Si en una revisión se añadió un fichero o directorio, se muestra el icono añadido en la segunda columna.

Si en una revisión se eliminó un fichero o directorio, se muestra el icono eliminado en la tercera columna.

Si una revisión reemplazó un fichero o un directorio, se muestra el icono reemplazado en la cuarta columna.

Obteniendo información adicional

Figura 5.16. El panel superior del diálogo de Registro de revisiones con el menú contextual

El panel superior del diálogo de Registro de revisiones con el menú contextual


El panel superior del diálogo de Registro tiene un menú contextual que le permite acceder a mucha más información. Algunas de las entradas de este menú aparecen sólo cuando se muestra el registro de un fichero, y algunas sólo cuando se muestra el registro de una carpeta.

  • Comparar las revisiones seleccionadas con su copia de trabajo. La Herramienta de Diferencias por defecto es TortoiseMerge que se proporciona con TortoiseSVN. Si el diálogo de registro es de una carpeta, esto mostrará una lista de sus ficheros cambiados, y le permitirá revisar los cambios hechos a cada fichero individualmente.

  • Ver los cambios hechos en la revisión seleccionada como fichero de 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 en un formato compacto.

  • Compara la revisión seleccionada con la revisión anterior. Esto funciona de forma similar a comparar con su copia de trabajo.

  • Obtener la información de autoría de la revisión seleccionada, y del fichero en su BASE de trabajo, y comparar los resultados utilizando una herramienta visual de diferencias. Lea “Autoría de las diferencias” para más detalles. (Sólo para ficheros).

  • Obtener la información de autoría de la revisión seleccionada, y de la revisión anterior, y comparar los resultados utilizando una herramienta visual de diferencias. (Sólo para carpetas).

  • Almacenar la revisión seleccionada en un fichero, para que pueda tener una versión antigua de ese fichero. (Sólo para ficheros).

  • Abrir el fichero seleccionado, bien con el visor por defecto para ese tipo de fichero, o bien con el programa que elija. (Sólo para ficheros).

  • Muestra la autoría del fichero hasta la revisión seleccionada (sólo para ficheros).

  • Abrir el navegador de repositorios para examinar el fichero o la carpeta seleccionados en el repositorio tal y como estaban en la revisión seleccionada.

  • Crear una rama/etiqueta desde una revisión seleccionada. Esto es útil por ejemlpo si se le olvidó crear una etiqueta y ya ha confirmado algunos cambios que no se supone que tengan que ir en esa versión.

  • Actualizar su copia de trabajo a la revisión seleccionada. Útil si quiere hacer que su copia de trabajo refleje un momento en el pasado. Es mejor actualizar un directorio completo en su copia de trabajo, no sólo un fichero, ya que si no su copia de trabajo será inconsistente y no podrá confirmar ningún cambio.

  • Revertir los cambios que se hicieron en la revisión seleccionada. Estos cambios se revierten en su copia de trabajo, ¡por lo que esta operación no afecta al repositorio en absoluto! Tenga en cuenta que esto deshará únicamente los cambios hechos en esa revisión. No reemplaza su copia de trabajo con el fichero completo tal y como estaba en la revisión anterior. Esto es muy útil para deshacer un cambio anterior cuando ya se han hecho otros cambios que no tienen que ver con el primero. Si ha hecho cambios locales, este comando fusionará esos cambios en su copia de trabajo.

  • Revertir a una revisión anterior. Si ha hecho varios cambios, y luego decide que realmente desea volver a dejar las cosas como estaban en la revisión N, este es el comando que necesita. De nuevo, los cambios se revierten en su copia de trabajo, por lo que esta operación no afecta al repositorio a menos que confirme los cambios. Tenga en cuenta que esto deshará todos los cambios que se hayan realizado tras la revisión seleccionada, reemplazando el fichero o la carpeta con la versión anterior. Si ha hecho cambios locales, este comando fusionará esos cambios en su copia de trabajo.

  • Fusiona en una copia de trabajo diferente la(s) revision(es) seleccionada(s). Un diálogo de selección de carpeta le permitirá elegir la copia de trabajo donde desea fusionar, pero después de eso no hay diálogo de confirmación, ni oportunidad de probar la fusión sin ejecutarla realmente. Es una buena idea fusionar en una copia de trabajo sin cambios, ¡y así poder revertir los cambios si no funcionan! Esta es una funcionalidad útil si desea fusionar las revisiones seleccionadas de una rama a otra.

  • Hace una obtención nueva de la carpeta seleccionada en la revisión seleccionada. Esto muestra un diálogo para que confirme la URL y la revisión, y seleccione un lugar para la obtención.

  • Exporta la carpeta o el fichero seleccionado en la revisión seleccionada. Esto muestra un diálogo para que confirme la URL y la revisión, y para que seleccione un lugar para la exportación.

  • Editar el mensaje de registro o el autor adjunto a una confirmación anterior. Lea “Cambiando el mensaje de registro y el autor” para averiguar cómo funciona esto.

  • Copia los detalles de registro de las revisiones seleccionadas al portapapeles. Esto copia el número de revisión, el autor, la fecha, el mensaje de registro y la lista de ítems cambiados para cada revisión.

  • Buscar en los mensajes de registro el texto que desee. Esto busca en los mensajes de registro que ha introducido, y también en los sumarios de acción creados por Subversion (mostrados en el panel inferior). La búsqueda no distingue mayúsculas y minúsculas.

Figura 5.17. Menú contextual del panel superior para 2 revisiones seleccionadas

Menú contextual del panel superior para 2 revisiones seleccionadas


Si selecciona dos revisiones a la vez (utilizando el modificador habitual Ctrl), el menú contextual cambia y le ofrece menos opciones:

  • Compara las dos revisiones seleccionadas utilizando una herramienta de diferencias visual. La herramienta de diferencias por defecto es TortoiseMerge que se proporciona con TortoiseSVN.

    Si selecciona esta opción para una carpeta, aparecerá un diálogo posterior mostrando los ficheros cambiados y ofreciéndole más opciones de diferenciación. Lea más sobre el diálogo Comparar Revisiones en “Comparando carpetas”.

  • Obtener la información de autoría de las dos revisiones y comparar los resultados utilizando una herramienta visual de diferencias. Lea “Autoría de las diferencias” para más detalles.

  • Ver las diferencias entre las dos revisiones seleccionadas como un fichero diff unificado. Esto funciona para ficheros y carpetas.

  • Copie los mensajes de registro al portapapeles tal y como se describió anteriormente.

  • Buscar mensajes de registro como se describe más arriba.

Si selecciona dos o más revisiones (utilizando los modificadores habituales Ctrl o Mayúsculas), el menú contextual incluirá una entrada para revertir todos los cambios que se hicieron en ese rango de revisiones. Ésta es la forma más sencilla para deshacer un grupo de revisiones de golpe.

También puede elegir fusionar en otra copia de trabajo las revisiones seleccionadas, como se describió más arriba.

Figura 5.18. El panel inferior del diálogo de Registro con el menú contextual

El panel inferior del diálogo de Registro con el menú contextual


El panel inferior del diálogo Registro también tiene un menú contextual que le permite

  • Mostrar los cambios hechos en la revisión seleccionada sobre el fichero seleccionado. Este menú contextual sólo está disponible para los ficheros que se muestran como modificados.

  • Obtener la información de autoría de la revisión seleccionada y de la revisión anterior del fichero seleccionado, y comparar los resultados utilizando una herramienta visual de diferencias. Lea “Autoría de las diferencias” para más detalles.

  • Abrir el fichero seleccionado, bien con el visor por defecto para ese tipo de fichero, o bien con el programa que elija.

  • Revertir los cambios hechos al fichero seleccionado en esa revisión.

  • Ver las propiedades de Subversion del ítem seleccionado.

  • Mostrar el registro de revisiones para ese fichero seleccionado.

  • Grabar la revisión seleccionada a un fichero, para que pueda tener una versión antigua de ese fichero.

Sugerencia

Puede haberse dado cuenta de que a veces nos referimos a cambios y otras veces a diferencias. ¿Cuál es la diferencia?

Subversion utiliza números de revisión para dos cosas diferentes. Una revisión generalmente representa el estado de un repositorio en un momento en el tiempo, pero también puede utilizarse para representar el conjunto de cambios que generaron esa revisión; por ejemplo, “Hecho en la r1234” significa que los cambios confirmados en la revisión 1234 implementan la característica X. Para dejar claro en qué sentido se utilizan, empleamos dos términos distintos.

Si selecciona dos revisiones N y M, el menú contextual le ofrecerá mostrar las diferencias entre estas dos revisiones. En términos de Subversion esto es diff -r M:N.

Si selecciona una única revisión N, el menú contextual le ofrecerá mostrar los cambios realizados en esa revisión. En términos de Subversion esto es diff -r N-1:N o diff -c N.

El panel inferior le muestra los ficheros cambiados en todas las revisiones seleccionadas, por lo que el menú contextual siempre ofrece mostrar cambios.

Obteniendo más mensajes de registro

El diálogo Registro no siempre le muestra todos los cambios que se hayan hecho alguna vez por unos cuantos motivos:

  • En un repositorio grande, puede haber cientos o incluso miles de cambios, y obtenerlos todos puede llevar mucho tiempo. Normalmente estará interesado sólo en los cambios más recientes. Por defecto, el número de mensajes de registro obtenidos se limita a 100, pero puede cambiar este valor en TortoiseSVNConfiguración (“Configuración de diálogos de TortoiseSVN 1”),

  • Cuando se marca la casilla Parar en copia/renombrado, Mostrar Registro se parará en el punto en el que el fichero o carpeta seleccionado se copió de algún otro lugar en el repositorio. Esto puede ser útil para buscar ramas (o etiquetas) porque se para en la raíz de esa rama, y le da una indicación rápida de los cambios hechos únicamente en esa rama.

    Normalmente querrá dejar esta opción sin marcar. TortoiseSVN recuerda el estado de la casilla, por lo que respetará su preferencia.

    Cuando se invoca el diálogo Mostrar Registro desde el diálogo Fusionar, la casilla siempre se marca por defecto. Esto es porque al fusionar lo más probable es buscar cambios en las ramas, y retroceder a la raíz de la rama no tiene sentido en ese caso.

    Tenga en cuenta que Subversion actualmente implementa el renombrado como un par de copia/borrado, por lo que renombrar un fichero o carpeta también provocará que el diálogo de registro se pare si se marca esta opción.

Si desea ver más mensajes de registro, pulse Siguientes 100 para obtener los siguientes 100 mensajes de registro. Puede repetir ésto tantas veces como sea necesario.

Al lado de este botón hay un botón multifunción que recuerda la última opción que utilizó. Pulse en la flecha para ver las otras opciones ofrecidas.

Utilice Mostrar rango ... si desea ver un rango específico de revisiones. Aparecerá un diálogo que le preguntará por la revisión de inicio y de fin.

Utilice Mostrar Todos si desea ver todos los mensajes de registro desde HEAD hasta la revisión 1.

Características de registro de fusión

Subversion 1.5 y posteriores almacenan un registro de las fusiones utilizando propiedades. Esto nos permite obtener una historia más detallada de los cambios fusionados. Por ejemplo, si desarrolla una nueva característica en una rama y luego la fusiona en el tronco, la característica desarrollada aparecerá en el historial de registro del tronco como una única confirmación para la fusión, incluso aunque haya habido 1000 confirmaciones durante el desarrollo de la rama.

Figura 5.19. El diálogo de registro mostrando revisiones con registro de fusión

El diálogo de registro mostrando revisiones con registro de fusión

Si desea ver el detalle de qué revisiones se fusionaron como parte de esa confirmación, utilice la casilla Incluir revisiones fusionadas. Esto obtendrá los mensajes de registro de nuevo, pero también intercalará los mensajes de registro desde las revisiones que se fusionaron. Las revisiones fusionadas se muestran en gris porque representan cambios hechos en una parte diferente del árbol.

¡Por supuesto que fusionar nunca es sencillo! Durante el desarrollo de la rama habrá probablemente fusiones ocasionales desde el tronco para mantener la rama en sincronía con la línea principal del código. Por eso la historia de fusiones de la rama también incluirá otra capa de historia de fusiones. Estas capas se muestran en el diálogo de registro utilizando niveles de indentación.

Cambiando el mensaje de registro y el autor

A veces querrá cambiar un mensaje de registro que introdujo en su día, quizás porque hay un error ortográfico en él o porque quiere mejorar el mensaje o cambiarlo por otras razones. O quizás quiera cambiar el autor de una confirmación porque se le olvidó preparar la autentificación, o ...

Subversion le deja cambiar tanto el mensaje de registro como el autor de las revisiones en cualquier momento. Pero como estos cambios no se pueden deshacer (estos cambios no se versionan), esta característica está deshabilitada por defecto. Para hacer que ésto funcione, debe preparar un gancho pre-revprop-change. Por favor consulte el capítulo sobre Scripts gancho en el Libro de Subversion para tener más detalles sobre cómo hacerlo. Lea “Scripts gancho” para encontrar más notas sobre cómo implementar ganchos en una máquina Windows.

Una vez que haya preparado su servidor con los ganchos necesarios, puede cambiar tanto el autor como el mensaje de registro de cualquier revisión, utilizando el menú contextual del panel superior del diálogo Registro.

Aviso

Dado que las propiedades de revisión de Subversion no se versionan, al hacer modificaciones a estas propiedades (por ejemplo, la propiedad del mensaje svn:log) se sobreescribirá el valor anterior de esa propiedad para siempre.

Filtrando los mensajes de registro

Si desea restringir los mensajes de registro para mostrar sólo en los que está interesado en vez de tener que navegar en una lista de cientos, puede utilizar los controles de filtro en la parte superior del Diálogo de Registro. Los controles de fecha de inicio y de fin le permite restringir la salida a un rango de fechas conocido. La caja de texto de búsqueda le permite mostrar sólo los mensajes que contengan una frase en particular.

Pulse en el icono de búsqueda para seleccionar sobre qué información desea buscar, y para seleccionar el modo regex. Normalmente sólo necesitará una búsqueda de texto simple, pero si necesita utilizar términos de búsqueda más flexibles puede utilizar expresiones regulares. Si mueve el ratón encima de la caja, aparecerá un texto de ayuda que le proporcionará pistas sobre cómo utilizar las funciones regex. También puede encontrar documentación en línea y un tutorial en http://www.regular-expressions.info/.

Tenga en cuenta que estos filtros actúan sobre los mensajes ya obtenidos. Ellos no controlan la descarga de mensajes desde el repositorio.

También puede filtrar los nombres de las rutas en el panel inferior utilizando la casilla Ocultar rutas cambiadas no relacionadas. Las rutas relacionadas son aquellas que contienen la ruta utilizada para mostrar el registro. Si está obteniendo el registro de una carpeta, eso significa todo lo que esté en esa carpeta o debajo de ella. Para un fichero, significa sólo ese fichero. La casilla tiene tres estados: puede mostrar todas las rutas, poner en gris las rutas no relacionadas, u ocultar esas rutas completamente.

A veces sus prácticas de trabajo requerirán que los mensajes de registro sigan un formato particular, lo que significa que el texto que describe los cambios no es visible desde el sumario abreviado mostrado en el panel superior. La propiedad tsvn:logsummary puede utilizarse para extraer una porción del mensaje de registro que se mostrará en el panel superior. Lea “Propiedades de projecto TortoiseSVN” para saber cómo se utiliza esta propiedad.

Información estadística

El botón Estadísticas lanza un cuadro de diálogo que muestra algunas informaciones interesantes sobre las revisiones que se muestran en el diálogo Registro. Le muestra cuántos autores han estado trabajando, cuántas confirmaciones han hecho, el progreso por semanas, y mucho más. Ahora puede ver de un vistazo quién ha trabajado duro y quién se ha tocado la barriga ;-)

Página de estadísticas

Esta página le proporciona todas las cifras que pueda necesitar, en particular el período y el número de revisiones cubiertas, y algunos valores mínimos/máximos/medios.

Página de confirmaciones por autor

Figura 5.20. Histograma de confirmaciones por autor

Histograma de confirmaciones por autor


Este gráfico le muestra qué autores han estado activos en el proyecto como un simple histograma, un histograma apilado o un gráfico de tarta.

Figura 5.21. Gráfico de tarta de confirmaciones por autor

Gráfico de tarta de confirmaciones por autor


Cuando hay unos pocos autores muy activos y muchos pequeños contribuyentes, el número de segmentos pequeños puede hacer que el gráfico sea más dificil de leer. El selector deslizante en la parte inferior le permite establecer un límite (el porcentaje sobre el total de confirmaciones) bajo el cual cualquier actividad se agrupa en una categoría Otros.

Página de confirmaciones por fecha

Figura 5.22. Gráfico de confirmaciones por fecha

Gráfico de confirmaciones por fecha


Esta página proporciona una representación gráfica de la actividad del proyecto en términos del número de confirmaciones y autor. Esto da una idea de cuándo se ha trabajado en un proyecto, y quién estaba trabajando en cada momento.

Cuando hay varios autores, puede obtener muchas líneas en el gráfico. Hay dos vistas disponibles aquí: normal, en la que la actividad de cada autor se refiere a la línea base, y apilado, donde la actividad de cada autor se refiere a la línea subyacente. La última opción evita que se crucen las líneas, lo que puede permitir un gráfico más sencillo de leer, pero es menos fácil ver la salida de cada autor.

Por defecto el análisis distingue mayúsculas y minúsculas, por lo que los usuarios PeterEgan y PeteRegan se tratan como autores diferentes. Sin embargo, en muchos casos los nombres de usuario no distinguen mayúsculas y minúsculas, y a veces se introducen de forma inconsistente, por lo que puede querer que DavidMorgan y davidmorgan se traten como la misma persona. Utilice la casilla Autores sin importar mayús/minús para controlar este comportamiento.

Tenga en cuenta que las estadísticas cubren el mismo período que el diálogo Registro. Si sólo se está mostrando una revisión, las estadísticas no le dirán mucho.

Modo sin conexión

Si no se puede alcanzar el servidor, y tiene habilitado el caché de registro, puede utilizar el diálogo de registro y el gráfico de revisiones en modo sin conexión. Esto utiliza la información de la caché, lo que le permite continuar trabajando aunqu ela información puede no estar actualizada o incluso completa.

Refrescando la vista

Si desea comprobar el servidor de nuevo para obtener los mensajes de registro más recientes, puede simplemente refrescar la vista utilizando F5. Si está utilizando la caché de registro (habilitada por defecto), esto buscará en el repositorio los mensajes más recientes y traerá sólo los nuevos. Si la caché de registro estaba en modo desconectado, esto intentará volver a ponerla en línea.

Si está utilizando la caché de registros y cree que el contenido del mensaje o el autor han podido cambiar, puede utilizar Mays-F5 o Ctrl-F5 para re-obtener los mensajes mostrados desde el servidor y actualizar la caché de registro. Tenga en cuenta que esto sólo afecta a los mensajes que se están mostrando actualmente y que por tanto no invalida la caché completa de ese repositorio.