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.
Pasos para la creación de ramas y etiquetas con Tortoise SVN
- 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:
- 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:
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‘.
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:
- Carpeta ‘trunk‘: esta carpeta contiene la rama de desarrollo principal.
- Carpeta ‘branches‘: en esta carpeta ser crearán las nuevas ramas.
- Carpeta ‘tags‘: en esta carpeta se crearán las nuevas etiquetas.
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:
- ‘HEAD revision in the repository‘: la nueva rama o etiqueta se creará directamenta con la revisión apuntada por el HEAD. Es la 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.
- ‘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
- ‘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.
Esperemos que os haya resultado de utlidad este tutorial. Si tienes alguna duda o sugerencia déjanos tus comentarios.
Deja tu comentario