Sólo para complementar la base de conocimientos - mi colega Isak Savo lotes de utilidad creada 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. Hice algunos cambios menores (contexto de directorio de conmutación para tf
comandos, cita de argumentos - necesarios si hay espacios en los directorios) y lo compartió 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
Guardar que, por ejemplo, para cambiar_branch.cmd y ejecutar desde cualquier directorio desde su máquina.
¿Qué terminaste haciendo? – granadaCoder