visual team studio msscci tfs branch tfs2008 shelve unshelve

team - ¿Puedo desmantelar una sucursal diferente en tfs 2008?



team explorer 2013 (4)

Supongamos que algún desarrollador de mi equipo dejó de lado los cambios que hizo en la rama A. Y estoy trabajando en la rama B. ¿Puedo desmantelar sus cambios en la rama B? (Por GUI o símbolo del sistema)


La información del estante incluye la ruta específica a la que va. Desafortunadamente, no conozco ninguna forma automática de desmantelar ninguna ubicación que no sea la que fue archivada. Las veces que he querido hacer esto, tuve que verificar los archivos equivalentes en la nueva sucursal, desmantelar desde la rama anterior y luego copiar manualmente los archivos.

EDITAR: Bueno, creo que lo estaba haciendo de la manera difícil. Tendré que probar la solución de Curt. :)


Pasé una buena cantidad de tiempo para hacer esto y tuve algunos problemas que superar. Es posible, pero aquí hay algunos problemas y pocas reglas a seguir para evitar estos problemas

Error:

incapaz de determinar el espacio de trabajo

Este problema en particular se resolvió ejecutando el comando desde la carpeta raíz de la sucursal de origen. Esto es contrario a algunas respuestas en SO donde dicen usar la rama "objetivo" - no, use "fuente":

cd [your !!source!! branch root] tfpt unshelve /migrate /source:"$/MyCollection/Development/Maint1.1" /target:"$/MyCollection/Development/Maint1.2" "myShelveset;UserName"

El segundo problema apareció después de esto. Parece que no se pudo conectar al servidor TFS. De lo que me di cuenta, tengo varios VS instalados y conectados a diferentes servidores TFS. Estaba usando VS12 y tenía conexión de área de trabajo y servidor. Pero no me di cuenta de que la misma conexión debe ser replicada en VS13 para que funcione el TFPT2013. Se conecta al mismo servidor y espacio de trabajo.

También intenté hacerlo con TFPT2015, pero lo instalé y no instaló TFPT.exe, por lo tanto, fue inútil. Así que probé de TFPT2013 a TFS2015 y funcionó para este comando en particular. Me pregunto, ¿por qué no, si VS12 / 13 funciona bien contra TFS2015?

Para resumir

  • Use CMD o DevCMD - no importa
  • ejecutar el comando desde la carpeta raíz de la sucursal de origen
  • verificar la conexión de Team Explorer Server para VS específicos
  • TF Power Tools 2013 trabaja en contra de TFS v15, al menos funciona la opción migrar

Visual Studio Power Tools debería permitirte hacer esto.

C:/src/2/Merlin/Main>tfpt unshelve /? tfpt unshelve - Unshelve into workspace with pending changes Allows a shelveset to be unshelved into a workspace with pending changes. Merges content between local and shelved changes. Allows migration of shelved changes from one branch into another by rewriting server paths. Usage: tfpt unshelve [shelvesetname[;username]] [/nobackup] [/migrate /source:serverpath /target:serverpath] shelvesetname The name of the shelveset to unshelve /nobackup Skip the creation of a backup shelveset /migrate Rewrite the server paths of the shelved items (for example to unshelve into another branch) /source:serverpath Source location for path rewrite (supply with /migrate) /target:serverpath Target location for path rewrite (supply with /migrate) /nobackup Skip the creation of a backup shelveset

Por ejemplo, para fusionar un conjunto de estantería llamado "Nombre de conjunto de estantería" creado en Branch1 a Branch2, use esto:

>tfpt unshelve "Shelve Set Name";domain/userName /migrate /source:"$/Project/Branch1/" /target:"$/Project/Branch2/"


Solución alternativa a tfpt que evita tener que fusionar cada archivo manualmente

El problema con la herramienta de poder tfs es que estás haciendo una ''combinación sin base'', así que debes confirmar cada archivo . Tenía un archivador de más de 800 archivos y nunca confío en el botón ''fusión automática'' y no quería revisar cada archivo uno a uno, ¡así que tenía que buscar otra forma!

  • Descargue e instale TFS Shelveset Sidekick .
  • La herramienta aparece en ''Herramientas'' en VS2010
  • Ejecute la herramienta ''Shelveset Sidekick'', haga clic en Buscar para mostrar conjuntos de estantes
  • Haga clic derecho en su conjunto de estantes y seleccione ''Exportar estante''
  • Guardar en una ubicación vacía como C:/temp/shelveset-name
  • Ahora tiene una estructura de directorio completa que contiene SOLO los archivos nuevos

(Nota: no hay una barra de progreso al exportar, por lo que si tiene un estante grande que tarda mucho tiempo en exportarse, solo tendrá que comprobar en el Explorador de Windows (Archivo> Propiedades> Tamaño) que los archivos aún están bajando si creo que está congelado).

Ahora solo tiene que copiarlos a la nueva sucursal con Windows Explorer.

Esto funcionó para mí:

  • Verificando primero toda la solución (en la nueva sucursal)
  • Cierra esa solución
  • Ponga a TFS fuera de línea dentro de VS ( herramienta para hacer esto ); consulte a continuación por qué esto es importante ...
  • Copie archivos en el Explorador de Windows. La estructura de directorios en c:/temp/shelveset-name deberá renombrarse para corresponderse con la nueva rama. Sugerencia: ¡asegúrese de copiar al lugar correcto!
  • Trae VS en línea
  • Debería encontrar todos los cambios y agregar los nuevos archivos
  • Si le pide que vincule el control de fuente, asegúrese de verificar que la ruta sea correcta para la nueva rama.
  • Prueba - y luego registrar los nuevos archivos

Importante: descubrí que si no desconecta TFS primero, terminará con todos los archivos nuevos (del conjunto de cambios de su estantería) que se muestran sin una pequeña marca de verificación roja y deberá excluirlos e incluirlos nuevamente. para hacer que agreguen Si alguien tiene una solución alternativa a este problema, me encantaría saber: refrescante no parece funcionar.