2009-04-23 13 views
22

Esta pregunta es un derivado de una pregunta anterior: How to version resources that are shared across projectsCómo se ramifican y se funden en TFS

Tengo un proyecto que contiene código que es consumida por muchos otros proyectos. Específicamente, una carpeta en este proyecto principal se ha ramificado a proyectos secundarios dependientes. Desde entonces, hemos realizado cambios en el proyecto principal y los he comprobado. En Source Control Explorer, hago clic derecho en la carpeta ramificada en el proyecto principal y selecciono "Merge", con la intención de insertar los cambios en un proyecto dependiente. Selecciono el proyecto secundario como destino y luego selecciono "Última versión". El asistente me informa "No hay cambios para fusionar".

Desde mi punto de vista, esto no es cierto, ya que los archivos recientemente actualizados son claramente diferentes.

¿Hay una falta de comprensión fundamental del proceso de fusión en TFS aquí? ¿Qué debo hacer de manera diferente?

Respuesta

17

El motor de combinación de TFS se basa casi por completo en el historial, no en el contenido del archivo. Esto lo hace eficiente para árboles muy grandes, y flexible para tareas como cambios seguros y precisos, pero también dificulta la respuesta a su pregunta.

El primer paso es entender los comandos de diagnóstico la historia del TF, TF fusiona y tf merge/ candidato. Aquí hay una buena introducción: http://blogs.msdn.com/dstfs/archive/2009/04/15/a-note-on-merging-and-the-use-of-tf-merges-tf-merge.aspx

Si es nuevo en la bifurcación & fusionándose en TFS, entonces su historial probablemente no sea muy complejo. Creo que es probable que encuentres tu respuesta con una llamada rápida al tf merdes. Sin embargo, el historial de fusión de trazas puede volverse extremadamente intrincado en el caso general, por lo que si tiene problemas, no dude en publicar con más detalles.

2

Vaya a un archivo específico que sabe que ha cambiado en su proyecto "principal". Intenta fusionar solo ese archivo. No verifique nada; solo mira lo que pasa

Algo a tener en cuenta: las herramientas de fusión no incluirán los archivos que se hayan agregado después de la bifurcación. Debe ramificar nuevos archivos de forma explícita antes de combinar cualquier cambio adicional. Si se agrega un archivo a las carpetas padre e hijo sin usar una operación de bifurcación, las herramientas de fusión no las tratan como versiones del mismo archivo (y no puede fusionar los cambios entre ellas).

+0

Correcciones: * Los archivos recién agregados no tienen una relación de fusión con otras ramas hasta que sean ellos mismos branched = TRUE. (nota: puede ser una "sucursal, eliminar") * La solución consiste en fusionar el archivo específico = FALSO. No funcionará La respuesta correcta es fusionar un padre que tiene una relación. * Los archivos agregados a ambas ramas en paralelo no se fusionarán = FIJO EN 2008. Consulte # 1-2 en http://blogs.msdn.com/tfsvcs/archive/2007/05/22/orcas-merge-enhancements. aspx - pero tenga en cuenta que si el contenido no concuerda, está atascado con un conflicto de versión que no tiene información "base"; fusionarse será un dolor. –

Cuestiones relacionadas