¿Puedo abrir una sucursal diferente en tfs 2008?


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

Author: spinodal, 2008-09-23

4 answers

El Visual Studio Power Tools debería permitirle 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 combinar un conjunto de estanterías llamado "Nombre de conjunto de estanterías" creado en Branch1 a Branch2 use esto:

>tfpt unshelve "Shelve Set Name";domain\userName /migrate /source:"$/Project/Branch1/" /target:"$/Project/Branch2/"
 128
Author: Curt Hagenlocher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-06 14:47:57

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

El problema con la herramienta tfs power tool es que está haciendo una 'fusión sin fundamento', por lo que debe confirmar cada archivo. Tenía una estantería de más de 800 archivos y nunca confío en el botón' auto merge ' y no quería ir a través de cada archivo a su vez, ¡así que tuve que encontrar otra manera!

  • Descargue e instale el Sidekick del conjunto de estanterías de TFS.
  • La herramienta aparece bajo "Herramientas" en VS2010
  • Ejecute la herramienta 'Shelveset Sidekick', haga clic en Buscar para mostrar shelvesets
  • Haga clic con el botón derecho en su shelveset y seleccione 'Exportar Shelveset'
  • Guardar en una ubicación vacía como C:\temp\shelveset-name
  • Ahora tiene una estructura de directorios completa que contiene SOLO los nuevos archivos

(Nota: No hay barra de progreso al exportar, por lo que si tiene un conjunto de estanterías grande que tarda mucho tiempo en exportarse, solo tendrá que ingresar al Explorador de Windows (Archivo > Propiedades > Tamaño) que los archivos todavía están bajando si crees que está congelado).

Ahora solo tienes que copiarlos a la nueva rama con el Explorador de Windows.

Esto funcionó para mí :

  • Comprobando primero toda la solución (en la nueva rama)
  • Cerrar esa solución
  • Tome TFS fuera de línea desde dentro de la herramienta VS ( para hacer esto) - vea a continuación por qué esto es importante...
  • Copie archivos en el Explorador de Windows. El la estructura de directorios en c:\temp\shelveset-name tendrá que ser renombrada para corresponder a la nueva rama. Consejo: Asegúrese de copiar en el lugar correcto!!!
  • Traer VS en línea
  • debe encontrar todos los cambios y agregar los nuevos archivos
  • Si le pide enlazar el sourcecontrol asegúrese de verificar que la ruta es correcta para la nueva rama.
  • Probar-y luego comprobar los nuevos archivos

Importante: He descubierto que si primero no desconectas TFS, terminarás con cualquier archivo nuevo (de su conjunto de cambios de unshelves) mostrándose sin una pequeña marca de verificación roja y tendrá que excluirlos e incluirlos nuevamente para que se agreguen. Si alguien tiene una solución alternativa a este problema me encantaría saber-refrescante no parece funcionar.

 34
Author: Simon_Weaver,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-21 02:27:45

La información del estante incluye la ruta específica a la que va. Desafortunadamente, no conozco ninguna forma automática de desplegarse a cualquier lugar que no sea el que fue archivado. Las veces que he querido hacer esto he tenido que comprobar los archivos equivalentes en la nueva rama, unshelve de la rama antigua, a continuación, copiar manualmente los archivos.

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

 1
Author: Herms,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-23 13:47:49

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

Error:

No se puede determinar el espacio de trabajo

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

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

El segundo número apareció después este. Parece que no pudo conectarse 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 espacio de trabajo y conexión al servidor. Pero no me di cuenta de que la misma conexión debe replicarse en VS13 para que TFPT2013 funcione. Se conecta al mismo servidor y espacio de trabajo.

También intenté hacerlo usando TFPT2015, pero lo instalé y no instaló TFPT.exe por lo tanto era inútil. Así que traté 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
  • ejecute el comando desde source branch root folder
  • verifique la conexión del servidor Team Explorer para VS
  • TF Power Tools 2013 funciona contra TFS v15, al menos migrate la opción funciona
 0
Author: T.S.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-09 19:07:36