Podemos cambiar entre las ramas en TFS

lo que yo quiero es que me he descargado una copia de trabajo y ahora quiero pasar a otra rama diferente sin necesidad de descargar todo, porque para los grandes proyectos que tomará mucho tiempo desde que los desarrolladores pasan mucho tiempo en la descarga de

Es posible, si no cualquier solución ??

  • ¿Qué hacer?
InformationsquelleAutor user804401 | 2012-04-20

5 Comentarios

  1. 14

    Puede cambiar ramas desde la línea de comandos de cliente (sólo la descarga de las diferencias) por el cambio de su área de trabajo y las asignaciones de uso de la /remap la bandera a la get comando:

    tf workfold /map $/Branch1 C:\Work
    tf get C:\Work /version:T /recursive
    tf workfold /unmap $/Branch1
    tf workfold /map $/Branch2 C:\Work
    tf get C:\Work /remap /version:T /recursive
    
    • Es posible hacer esto desde el IDE también? por ejemplo, conjunto de todas las ramas de la misma base de código para el mismo local asignada carpeta del área de trabajo, y el interruptor que se utiliza?
    • Enchufe descarado: he creado el TfDash proyecto para hacer cosas como esta por tanto más fácil. tf-switch [TFS Branch Path] es todo lo que usted necesita.
    • No he entendido correctamente que las dos primeras líneas del mapa y obtener la inicial de la sucursal así que si ya tengo a nivel local no necesito ejecutar ellos? Y que la línea 3 retira la asignación de la rama que se necesita para cambiar a modo, si nunca he asignado localmente yo también no lo necesita? Así, en la línea 4 I mapa de Branch2 a la carpeta donde Branch1 ya está asignada (no es necesario quitar la asignación de ella?) y, a continuación, encienda la versión local en la línea 5.
    • Lo siento, eso fue un error, he corregido; usted desasignar la original rama, a continuación, el mapa de la nuevo de la rama. TFS recuerde qué archivos localmente, incluso después de desasignación para este propósito.
    • Hmm, yo sólo los primeros y últimos pasos y parece que funciona bien: tf workfold /map "$/NewBranch" C:\Work y, a continuación, tf get c:\Work /remap /version:T /recursive
  2. 5

    En TFS ramas son «físicamente» presente en el Control de código Fuente, son como «carpetas especiales». Así que totalmente se puede elegir qué rama de obtener localmente por la orientación de la carpeta de la derecha para obtener.

    Si usted tiene por ejemplo:

    • Proyectos [carpeta]
      • ProjectA [carpeta]
        • Dev [Rama]
        • V1 [Rama]
      • ProjectB [carpeta]
        • Dev [Rama]
        • V1 [Rama]

    y usted desea conseguir en los «Proyectos» de nivel con sólo el contenido de «Dev», usted puede crear el mapa de su área de trabajo definición de cloack la V1 ramas de ProjectA y B.

    • Me podría separar de la corriente proj y se unen a otra rama de la derecha??
    • Su proyecto será duplicada, habrá una versión por sucursal. Para cargar el proyecto primero se encuentra la rama que desea utilizar, a continuación, cargar el proyecto que está en el interior.
  3. 3

    Sólo para complementar la base de conocimientos – mi colega Isak Savo creado útil de lotes para tal propósito. Usted necesita hacer algo de edición dentro de la secuencia de comandos (en la parte superior) para que apunte a la correcta posición de código fuente y adecuado de las ramas. El núcleo es básicamente el mismo que en Edward Thomson respuesta, pero con algunos interactivo lógica añadido. He hecho algunos cambios menores (directorio cambio de contexto para tf comandos, las cotizaciones de los argumentos necesarios si hay espacios en los directorios) y lo compartimos a continuación:

    @echo off
    rem Command to switch the current source tree to a new branch.
    rem It's best to not have any pending changes. 
    set DEVBRANCH=$/dir/src1
    set RELEASEBRANCH=$/dir/src2
    set SOURCEDIR=c:\sources directory\src
    
    if exist "%SOURCEDIR%" goto ASK
    
    echo Source code directory (%SOURCEDIR%) not found, please edit this script to point to the correct directory
    pause
    exit
    
    :ASK:
    set TARGET=
    echo Available branches are:
    echo   Dev: %DEVBRANCH%
    echo   Release: %RELEASEBRANCH%
    set /P ANSWER=Specify target branch? [Dev, Release]  
    cls
    if /I "%ANSWER%"=="Release" set TARGET=%RELEASEBRANCH%
    if /I "%ANSWER%"=="Dev" set TARGET=%DEVBRANCH%
    if /I "%ANSWER%"=="quit" goto END
    if [%TARGET%] NEQ [] goto SWITCH
    
    echo "%ANSWER%" unknown, please answer Dev or Release. Specify quit to cancel
    GOTO ASK
    
    :SWITCH
    rem Navigate to the mapping source folder to avoid "Unable to determine the workspace..." error while invoking tf commands.
    echo Changing directory context
    pushd %SOURCEDIR%
    
    echo Switching to branch %TARGET%
    echo  - Creating new mapping...
    tf workfold /map "%TARGET%" "%SOURCEDIR%"
    echo  - Get latest version...
    tf get "%SOURCEDIR%" /remap /version:T /recursive
    
    popd
    goto END
    
    :END
    

    Guardarlo por ejemplo, a switch_branch.cmd y ejecutar desde cualquier directorio de tu máquina.

  4. 1

    Team Explorer Everywhere tiene un «cambio a la rama de comandos», que es probablemente lo que usted está buscando.

    De Visual Studio, en el otro lado, no tiene el mismo comando…

  5. -1

    Usted puede cambiar entre múltiples ramas, siempre y cuando usted está utilizando el mismo espacio de trabajo y el directorio de trabajo contiene las ramas.

    • sí, pero ¿cómo puedes hacer eso?
    • En dinamarca creo Jehan33 podría estar hablando sobre el cambio de las ramas con TFS a través de Eclipse, que es posible. El OP no indicar qué IDE están usando

Dejar respuesta

Please enter your comment!
Please enter your name here