2012-09-26 10 views
5

¿Cuál es la forma más fácil de aplicar los cambios de un conjunto de cambios específico a partir de una instancia de TFS en otra instancia?Aplicar un conjunto de cambios específico de una instancia de TFS a otra

Lo que quiero es obtener algún tipo de archivo de parche de la instancia A que pueda aplicar a la instancia B. Como hay dos instancias diferentes, no se puede usar un enfoque de bifurcación/fusión tradicional. Y hasta donde yo sé, TFS tiene poco soporte para archivos de parche en el sentido tradicional de Unix.

¿Realmente necesito inspeccionar un conjunto de cambios en la instancia A y comprimir manualmente los archivos relevantes que luego puedo extraer en el árbol fuente de la instancia B?

+0

Si explica por qué tiene dos instancias de TFS diferentes que podrían ayudar. –

+0

El Cliente C ha decidido cambiar del Proveedor A al Proveedor B para mantener su solución de software empresarial. Durante algunos meses, A seguirá siendo responsable de corregir errores, mientras que B será responsable de las solicitudes de cambio. Como se indicó en la pregunta, A y B no comparten un servidor TFS, y las correcciones de errores que A hacen en su árbol fuente necesitan encontrar su camino hacia el servidor de B. –

Respuesta

3

Resulta que la ruta del "parche" era un callejón sin salida debido a la falta de soporte en TFS. La solución con la que terminamos fue realizar un trabajo nocturno que básicamente hace lo siguiente:

  1. Obtenga todo el código del repositorio remoto con un usuario de solo lectura.
  2. Sobrescribe todo el contenido de una rama separada en nuestro repositorio con el contenido de la otra.
  3. Realiza una fusión desde esa rama separada a la rama principal cada vez que queremos llevar sus cambios a nuestra rama principal.
1

This answer explica cómo crear un archivo de parche utilizando el comando tf diff. Sin embargo, no hay una forma incorporada de aplicar ese archivo de parche a otra instancia o rama. Tampoco he visto herramientas de terceros para hacerlo.

+0

He mirado el comando 'tf diff', pero la única forma que he encontrado de diferenciar en un conjunto de cambios específico N es ejecutarlo en la raíz de origen con versionspec CN-1 ~ CN, que toma una eternidad y tampoco lo hace manejar archivos agregados o eliminados, solo archivos modificados. –

1

Escribí una publicación de blog sobre un problema similar donde utilicé el comando TF.exe y 7Zip a create a TFS patch file que luego podría aplicarse en otro servidor TFS o espacio de trabajo. Publiqué los scripts de Powershell en Github, que se pueden usar para comprimir los cambios pendientes en un área de trabajo y luego aplicarlos a un servidor diferente. Tendría que modificarse para usar un conjunto de cambios en lugar de cambios pendientes, pero eso no debería ser demasiado difícil de lograr.

Cuestiones relacionadas