Curso Subversion: Etiquetas

Etiquetas (tags)

Las etiquetas son otro importante concepto de los sistemas de control de versiones. Y como no podía ser menos, subversion también las incorpora.

Lo lógico y habitual cuando se usa un sistema de control de versiones es que se suban los cambios al repositorio con frecuencia (commits), de manera que el número de revisiones puede llegar a ser bastante grande. De entre todas las revisiones que se crean, hay algunas que tienen especial importancia. Por ejemplo aquellas que dan lugar a versiones estables del código. O aquellas en las que se ha resuelto algún problema de interés. En esos casos, recordar un número de revisión, como puede ser 5378, no es lo más práctico. Y es ahí donde entra en juego el concepto de etiqueta, las cuales son cadenas de texto que se asignan a una revisión concreta.

Etiquetas simples

Se realizan mediante el comando copy:

svn copy http://curso-svn.juandarodriguez.es/svn/mapbundle/trunk \
         http://curso-svn.juandarodriguez.es/svn/mapbundle/tags/version_1.2 \
          -m 'etiquetando la version 1.2'

También se puede etiquetar una revisión concreta sin más que hacer una copia de dicha revisión:

svn copy -r 456 http://curso-svn.juandarodriguez.es/svn/mapbundle/trunk \
         http://curso-svn.juandarodriguez.es/svn/mapbundle/tags/version_1.2 \
          -m 'etiquetando la version 1.2'

En cualquier caso no se trata más que de una rama que se crea en un directorio que dedicamos para etiquetas. No hay diferencia entre tags y ramas en subversion, simplemente no se debe desarrollar en la "rama" tags, se reserva únicamente para etiquetar revisiones.

Etiquetas complejas

Puede ocurrir, aunque es algo mucho menos frecuente, que lo que deseemos etiquetar sea el estado de una copia de trabajo en la que hemos realizado cambios, hemos fusionado algunos archivos de otra rama, hemos recuperado archivos de revisiones antiguas y, en definitiva, tenemos un popurrí de cambios que pueden proceder de distintas fuentes pero es lo que queremos etiquetar. Entonces se puede usar el comando copy sobre la copia de trabajo:

svn copy my-working-copy \
         http://curso-svn.juandarodriguez.es/svn/mapbundle/tags/version_1.2 \
          -m 'etiquetando la version 1.2'

Otro uso que se puede dar a esta estrategia es la de mostrar a otros desarrolladores los cambios que uno ha hecho sin subirlos a las ramas de desarrollo.

Temas avanzados >>>