2012-04-04 20 views
9

He estado siguiendo el consejo en "Team Development with Visual Studio Team Foundation Server" en structuring projects y sharing code from one team project into another using branching. Así que nuestro árbol fuente se ve así:No se pueden anidar las ramas de TFS, por lo que no funciona la bifurcación para compartir el código.

server\instance 
    Shared 
    share 
    Project1 
    Main 
     Product1 
     share (branched into Project1 from Shared) 
    Stories 
     1607 
     1832 

O al menos debería.

Como puedes ver, además de ramificar en algún código compartido, también usamos la rama por cada historia del usuario.

El problema es que cuando trato de bifurcar en la carpeta compartida desde el proyecto compartido (nombre de la rama de origen: $/compartido/compartir; nombre de la rama de destino: $/proyecto1/principal/compartir), aparece el error:

TF203028: You cannot create a branch at $/Project1/Main/share because a branch already exists at $/Project1/Main.

Está documentado que no puede anidar ramas en TFS, por lo que el error no es sorprendente. Por lo tanto, parece que estoy arruinado y el libro de Desarrollo del equipo está equivocado. (El libro implica que esto debería funcionar.)

Pero las apariencias pueden ser engañosas y es más probable que me equivoque que los autores del libro. ¿Alguien puede ayudarme a entender cómo solucionar esto?

(Una solución obvia sería hacer que la raíz de la historia se convierta en un hermano de la acción, en lugar de un padre. Pero esto no será de ninguna utilidad para nosotros, porque significaría que no podríamos hacer cambios en el código compartido en una rama de historia, que más bien derrota al objeto de rama por historia. También significaría una cantidad bastante colosal de trabajo cambiando las rutas en los proyectos.)

Respuesta

5

Encontré la solución.

TFS mostró un icono de rama en Project1 \ Main, en lugar de un ícono de carpeta. Fui a File>Source Control>Branching and Merging>Convert to Folder y lo convertí nuevamente a una carpeta. Luego pude compartir sucursales en Project1.

Curiosamente, Main sigue siendo un punto en el que se crean las ramas de la historia, y esas ramas todavía existen.

La verdadera solución fue que tuve que hacer que los lugares donde el código compartido se bifurcara en las carpetas normales del proyecto, en lugar del icono de la rama. Fui a File>Source Control>Branching and Merging>Convert to Folder y lo convertí nuevamente a una carpeta. Pude crear ramas en Main.

La rama de Main, y las ramas de la historia conservan sus iconos de rama. compartir ahora parece una carpeta ordinaria.

+2

Puede utilizar las extensiones de TFS Source Control Explorer para bifurcar a una carpeta, lo que básicamente le permite hacer lo que desea. http://visualstudiogallery.msdn.microsoft.com/c6642e7f-1a58-4ff0-aef9-0322dcc2b28d – jessehouwing

Cuestiones relacionadas