Este documento explica cómo crear ramas y etiquetas en un repositorio Subversion usando TortoiseSVN. Las ramas se usan para desarrollos separados que luego se fusionan, mientras que las etiquetas marcan versiones específicas. El proceso implica seleccionar la ubicación, revisión de origen y mensaje a través de la interfaz de TortoiseSVN.
1. Crear rama o etiqueta en respositorios Subversion
utilizando TortoiseSVN
En este tutorial vamos a explicar cómo se crean ramas y etiquetas en un
respositorio del sistema de control de versiones Subversion utilizando la
herramienta TortoiseSVN.
La creación de ramas o etiquetas (branchs/tags) cuando se trabaja con el sistema
de control de versiones Subversion es una práctica extendida. Para comenzar
vamos a empezar por explicar la diferencia de concepto entre ‘rama‘ y ‘etiqueta‘:
Se creará una rama o ‘branch‘ para continuar con un desarrollo, asilándolo
de la rama original. Esta rama se podrá emplear para realizar pruebas,
añadir código y evitar posibles errores en la rama principal. Los
desarrolladores irán trabajando sobre esta nueva rama. Cuando la nueva
rama sea estable, los cambios realizados sobre ellas serán aplicados sobre
la rama principal, conocida como ‘trunk’.
Las etiquetas o ‘tags‘ se emplean para añadir marcas sobre versiones
específicas. Cuando se consigue llegar a un hito y “cerrar” una versión , se
creará un tag sobre esa revisión para poder retornar a ella si fuese
necesario. En este caso, no se sigue trabajando sobre esta versión. Esta
etiqueta únicamente se utilizará como punto de retorno en caso de que
fuese necesario resolver alguna incidencia o realizar algún trabajo sobre la
versión etiquetada.
La siguiente imagen ilustra estos conceptos, se puede ver como se crear una
etiqueta ‘TAG A‘ sobre la que no se sigue trabajando. Y como se crea también
una rama de trabajo en la que se generan dos nuevas versiones que
posteriormente son aplicadas en la rama de desarrollo principal.
2. Gráfico de ramas y etiquetas en Subvsersion
Pasos para la creación de ramas y etiquetas con
Tortoise SVN
1. Situándonos en la carpeta local donde se encuentra el raíz del repositorio
acceder al menú de tortoise, clic con el botón derecho del ratón, y
seleccionar la opción ‘Branch/tag‘ como se indica en la siguiente imagen:
Crear ramas y etiquetas Tortoise SVN
3. 2. En la siguiente ventana se debe indicar el destino, la carpeta del
repositorio, donde se creará la nueva rama o etiqueta. También habrá que
indicar la revisión a partir de la que se creará, o bien indicar que se debe
crear a partir de la copia de trabajo actual. Primero vamos a ver como es la
ventana y luego explicaremos los campos que aparecen:
Configurar rama o etiqueta Toroise
En la parte superior veremos las direcciones (URLs) de origen y destino.
Como se puede ver en la url de origen, identificada por ‘From WC to URL:‘
,en este ejemplo estaríamos creando una rama o etiqueta a partir de la
rama principal ‘trunk‘.
4. Definir la URL de destino
La url introducida debe apuntar a una carpeta del repositorio SVN donde se
creará la nueva rama o etiqueta. Para definir la url es necesario conocer
como es la estructura de un respositorio Subervsion.
Cuando se trabaja con ‘Subversion’ se debería seguir la siguiente
estructura de carpetas en el repositorio:
o Carpeta ‘trunk‘: esta carpeta contiene la rama de desarrollo
principal.
o Carpeta ‘branches‘: en esta carpeta ser crearán las nuevas ramas.
o Carpeta ‘tags‘: en esta carpeta se crearán las nuevas etiquetas.
Estructura repositorio Subversion
Por tanto si lo que se va a crear es una nueva rama la url deberá apuntar a
una nueva carpeta situada bajo ‘branches‘, y si lo que se está creando es
una etiqueta, la url apuntará a una carpeta que cuelgue de ‘tags‘.
En este ejemplo estaríamos creando una nueva etiqueta ‘v1.0-entrega‘ en
la siguiente url:
https://urldelrepositorio.com/svn/tags/v1.0-entrega
Si la carpeta no existe en el servidor donde está el respositorio SVN se
creará automáticamente.
Seleccionar la revisión a utilizar como HEAD
El siguiente paso será indicar en la sección ‘Create copy in the reposiroty
from‘ que revisión será el origen de la nueva rama, o sobre que revisión
vamos a ‘colocar’ la etiqueta. En esta sección vemos tres posibles
opciones:
o ‘HEAD revision in the repository‘: la nueva rama o etiqueta se
creará directamenta con la revisión apuntada por el HEAD. Es la
5. forma más rápida de crearlas, ya que se creará con el contenido del
repositorio sin necesidad de intercambio de ficheros con la copia de
trabajo local.
o ‘Specific revision in the repository‘: seleccionando esta opción
podremos indicar le número de revisión desde el que se creará la
nueva rama o etiqueta. Al igual que en el punto anterior, se crear con
el contenido del repositorio, sin necesidad de transferir ningún fichero
o ‘Working copy‘: la nueva rama o etiqueta contendrá todos los
cambios que tengamos en nuestra copia local. Por tanto, este tipo
de creación si que implica intercambio de ficheros entre la copia local
y la remota. La nueva rama será un clon de nuestra copia de trabajo
local.
Mensaje para identificar la rama o etiqueta
El tercer paso sería rellenar el mensaje que acompañará a la nueva rama o
etiqueta y que se utilizará para identificarlas rápidamente.
Cambiar a la nueva rama tras su creación
En la parte inferior podemos ver una casilla de verificación que en caso de
estar seleccionada indicará que queremos cambiar a la nueva rama tras su
creación, por lo que nuestra copia de trabajo local quedará apuntando
sobre esta nueva rama. Esto implicará que los nuevos desarrollos que
realicemos los estaremos haciendo sobre esta nueva rama, y no sobre la
original.
Si por el contrario lo que estamos creando es una etiqueta, desactivar esta
opción, ya que lo que se quiere es crear un ‘punto de retorno’ en el
repositorio, pero seguir trabajando sobre la rama actual.
Para finalizar, pulsar en el botón ‘Ok‘ y se aplicarán los cambios que
hayamos seleccionado.
Siguiendo estos pasos deberías ser capáz de crear nuevas ‘branchs‘ y ‘tags‘ en
un repositorio Subversion utilzando la herramienta Tortoise. Una vez creadas,
podrás cambiar de rama de trabajo, o restaurar el estado del proyecto al que
apunta una etiqueta de forma rápida.