update - tfs 2018 download
Team Foundation Server cambia entre las sucursales (5)
En las sucursales de TFS están presentes "físicamente" en el control de código fuente, son como "carpetas especiales". Por lo tanto, puede elegir totalmente qué rama obtiene localmente al orientar la carpeta correcta para su obtención.
Si tiene, por ejemplo:
- Proyectos [carpeta]
- ProjectA [carpeta]
- Dev [Sucursal]
- V1 [Sucursal]
- ProjectB [carpeta]
- Dev [Sucursal]
- V1 [Sucursal]
- ProjectA [carpeta]
y desea obtener el nivel de "Proyectos" con solo el contenido de "Dev", puede crear una asignación en su definición de Área de trabajo para cerrar las ramas V1 de ProjectA y B.
¿Podemos cambiar de rama en TFS?
lo que quiero es que descargué una copia de trabajo y ahora quiero cambiar a una rama diferente sin descargar todo, porque para proyectos grandes llevará mucho tiempo ya que los desarrolladores pasan mucho tiempo descargándose
¿Es posible, si no hay alguna solución?
Puede alternar entre varias ramas, siempre que use el mismo espacio de trabajo y el directorio de trabajo contenga las ramas.
Team Explorer Everywhere tiene un comando "Switch to branch", que es probablemente lo que estás buscando.
Visual Studio, por otro lado, no tiene el mismo comando ...
Puede cambiar las ramas desde el cliente de la línea de comandos (solo descargando las diferencias) cambiando las asignaciones de su espacio de trabajo y usando el indicador /remap
al comando get
:
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
Solo para complementar la base de conocimiento, mi colega Isak Savo creó lotes útiles para tal fin. Es necesario realizar algunas ediciones dentro del script (en la parte superior) para señalar la ubicación correcta del código fuente y las ramas correspondientes. El núcleo es básicamente el mismo que en la respuesta de Edward Thomson, pero con alguna lógica interactiva agregada. Realicé algunos cambios menores (cambio de contexto de directorio para comandos tf
, comillas para argumentos, necesarios si hay espacios en directorios) y lo compartí 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
Guárdelo, por ejemplo, en switch_branch.cmd y ejecútelo desde cualquier directorio de su máquina.