TFS. Branch y Merge

 

La idea de este post es recordarme a mí mismo, como hice esto:

En la GUI normal que permite hacer Branching y Merging de código fuente, en el Visual Studio, sólo hay la posibilidad de hacer Merge hacia una rama padre o sobre la cual se creó o basó el Branch o una rama hija, es decir, una rama que se crea basada en el propio código de la rama a la que ahora se quiere hacer el proceso de Merge.

Como es demasiado enredado el tema, al leer la descripción en palabras, apoyémonos en imágenes.

La idea, para este ejemplo es:

Del branch GTC.root-LB-INT, se creó el Branch GTC.root-BR-022_20131119, en cuyo caso, en el lenguaje de padres e hijos. GTC.root-LB-INT es padre de GTC.root-BR-022_20131119.

6

Ahora, se tiene el Branch GTC.root-BR-CopiaBranch22, que se creó a partir del Branch GTC.root-BR-022_20131119, en cuyo caso GTC.root-BR-022_20131119 es padre de GTC.root-BR-CopiaBranch22.

7

Cuando se intenta hacer un merge del código de la rama GTC.root-BR-022_20131119, salen la rama padre y la hija.

1

La idea de esta entrada es demostrar, como lograr que aparezca una rama hermana, es decir, otra rama creada a partir de GTC.root-LB-INT.

Se desea que la rama GTC.root-LB-INT-CAM0068 que es hija de GTC.root-LB-INT, aparezca entre las opciones para hacer merge del código de la rama GTC.root-BR-022_20131119.

Así tenemos entonces:

8

Como quien dice se desea poder hacer merge del código de una rama hacia una rama hermana.

Para lograr esto, es necesario usar un comando de consola, que para el caso del ejemplo es:

Tf merge /baseless <<source path>> <<target path>> /recursive

Para el caso en cuestión sería:

Tf merge /baseless D:\dirtrab\pry_GTC\Fuente\GTC.root-BR-022_20131119 D:\dirtrab\pry_GTC\Fuente\GTC.root-LB-INT-CAM0068 /recursive

Este comando se puede ejecutar en la ventana de comandos de Visual Studio.

2

Al dar enter, no reconoció el comando. Entonces, el comando se ejecuta de forma externa a Visual Studio.

3

Luego de un momento, se ejecuta el proceso de Merge. Eso es algo que se debe tener en cuenta, se realiza el proceso de Merge de forma automática, teniendo en cuenta todos los archivos. Por eso es importante, antes de ejecutar el comando, haber obtenido última versión, de las fuentes de las ramas involucradas.

Si hay conflictos, aparece la ventana para su solución:

4

Una vez se solucionan todos los conflictos, se procede a dar check – in y luego si se va de nuevo a la opción de Merge para la rama GTC.root-BR-022_20131119, se encuentra que aparece la rama GTC.root-LB-INT-CAM0068, es decir, la rama hermana.

5

Comentarios

Entradas populares de este blog

Visual Studio 2012 Backup and Restore bases de datos

Configuración de expresiones en Quartz

Hacer que Windows XP luzca como Windows 7