2011-10-20 3 views
12

que tienen un proyecto de equipo creado con el patrón de rama "estándar" de orientación ramificación ALM los Vigilantes:¿Cómo eliminar una sucursal del centro de la jerarquía?

Standard Branch Hierarchy

Después de su creación, descubrí que lo único que realmente necesitaba el patrón 'Básica'. Es decir, no necesito la rama "Service Pack".

¿Hay alguna manera de eliminar la rama "Service Pack" y "sanar" la jerarquía para que "Release" esté debajo de "Main" en la jerarquía? En este momento, cada conjunto de cambios en la jerarquía "Service Pack" tiene un conjunto de cambios correspondiente en la jerarquía "Release", ya que "Service Pack" acaba de ser un obstáculo.

+3

¿Por qué nadie podría rechazar esta pregunta? –

Respuesta

1

La solución más simple es no eliminar o reparar.

La rama del paquete de servicio es la "rama del paquete de servicio" solo por nombre. Elimine la rama "liberar" y cambie el nombre de la "rama del paquete de servicio" por "liberar".

+0

Simple y elegante, y la respuesta. –

5

Las ramas en TFS son desafortunadamente anticuadas (o, "similar a un dinosaurio" si le preguntas a Torvalds;) en que una vez creada, la estructura está configurada y no se puede cambiar. Creo que tendrá que crear una nueva rama Release directamente debajo de Main, y luego realizar un baseless merge desde la rama de versiones anterior a la nueva. Creo que debería usar el parámetro /noprompt en el comando de fusión para detener el diálogo "Resolver conflictos" para mostrar.

Esto le dará más conflictos de los que realmente necesita, ya que TFS no sabrá qué antepasado usar. Pero como querrá tomar todo de la rama de publicación original, puede usar el comando tf resolve /recursive /auto:TakeTheirs para decirle a TFS que siempre tome los cambios en la rama fuente.

Después de eso, debería poder eliminar la rama anterior.

Complicado, pero no imposible.

+1

al usar el parámetro/descartar con la fusión sin base no obtienes conflictos y no se cambia el código en ninguno de los lados –

2

A continuación trabajó para mí en un escenario similar

tf merge /baseless /recursive /noprompt /discard $/TFS/Path/To/Release $/TFS/Path/To/Main 

a continuación:

  • borrado "Service Pack" rama
  • registro de entrada "principal" y "Service Pack"

ahora puede hacer combinaciones de GUI normales de "Release" a "Main"

NOTA: Como muchas personas ya han mencionado, tenga cuidado con las fusiones infundadas que pueden morderlo en las joyas más adelante en la línea cuando se abusa.

3

Bueno, yo no sé de versión antigua de TFS, pero al menos en TFS2012/VS2013, que puede hacer:

  1. Un Baseless Combinar desde principal ->lanzamiento
  2. Source Control Explorer>Branching and Merging>Reparent, elija Principal (el nuevo elemento primario)

¡Hecho!

+0

A veces, la ventana del asistente tarda tiempo en cargar los posibles padres – RMalke

Cuestiones relacionadas