Manos en la masa, haciendo crecer nuestro árbol del repositorio de código

Este es el tercer capítulo de la miniserie sobre Branching. Que se ha compuesto de Labeling, Branching y este, Manos en la masa. Y que trata sobre técnicas de división del desarrollo en el repositorio de código que nos haga más fácil el manejar la complejidad inherente a toda construcción de aplicaciones de software.

Este ejemplo lo voy a mostrar en Visual Studio 11 beta contra un Team Foundation Service, pero es muy similar el realizarlo en Git, Mercurial o SVN. Lo importante no es la herramienta, si no tener claro que el uso de estas técnicas nos hace crecer en la madurez de nuestros equipos y nos facilita y prepara para cuando las cosas se tuercen que es casi siempre.


Haciendo un branch


Tengo un proyecto de GenbetaDev en mi repositorio de código en una cuenta de Team Foundation Service (en la Nube). Accedo a él, y selecciono el explorador del repositorio de código.

En la ventana que se me abre, veo mi directorio de carpetas de proyectos, en donde abro la de GenbetaDev.

Aquí me encuentro la carpeta troncal Trunk de mi desarrollo y de la cual quiero hacer una nueva rama. Para ello pulso con el botón derecho encima del nodo del cual quiero que salga la rama, y en el menú contextual selecciono “Branching and Merging”.

En el menú desplegable selecciono la opción “Branch”, y se me abre una ventana en donde le pongo un nombre en el repositorio a la carpeta que va a contener la nueva rama; qué versión del código original quiero copiar en el Branch (el último, una etiqueta específica, una fecha, etc.); y si quiero descargar la nueva rama en mi workspaces actual o convertirla en mi código por defecto.

A continuación me solicita que haga un mapeado de la carpeta del repositorio de código a mi disco duro. Es decir, en qué carpeta local voy a guardar el código almacenado en el Branch. Y aquí te voy a dar un consejillo.

En desarrollos medios o pequeños, sin mucha complejidad, yo utilizo la misma carpeta para el Trunk y los Branch. Así me evito modificar el código en la rama inadecuada por no darme cuenta de cual solución estoy abriendo. Puede que no sea la mejor práctica, pero a mi me funciona muy bien para evitar errores.

Una vez realizado esto, pulsamos el botón de “Map” y el sistema se pone a realizar el branching de nuestro código. Observándose en el explorador del repositorio, cuando finalice el proceso, nuestra nueva rama y el que está configurada como solución por defecto.

Fundiendo ramas


La segunda parte del proceso, y sin duda la más difícil, es cuando tengo una rama y la quiero actualizar en el Trunk. O actualizar con el código de la principal, el código de una Branch.

Para ello, desde la ventana del explorador del repositorio, pulso con el botón derecho sobre la rama que quiero fundir con otra, y escojo “Merge”. Abriéndose la ventana de un asistente en donde debo escoger cual es la rama destino para realizar la actualización y cual es la versión de código que nos queremos llevar.

Acto y seguido el TF Service se pondrá a trabajar y añadirá y modificará los ficheros de forma automática, siempre que sea posible. Y en el caso de que no lo pueda hacer porque la modificación tiene posibilidades de no hacerse correctamente, entonces nos marca el Merge como manual y debemos de utilizar la herramienta de comparación de código para completar la unión.

Pero de esta herramienta hablaré en el próximo capítulo,

Más información | Visual Studio Team Foundation Server Branching and Merging Guide Git. Magia Con Los Branches

En GenbetaDev | Etiquetando,haciendo crecer nuestro árbol del repositorio de código, Branching, haciendo crecer nuestro árbol del repositorio de código

Portada de Genbeta