Chỉ cần bổ sung các kiến thức cơ bản - đồng nghiệp Isak Savo tạo batch hữu ích của tôi cho mục đích đó. Bạn cần thực hiện một số chỉnh sửa bên trong tập lệnh (ở trên cùng) để trỏ đến vị trí mã nguồn chính xác và các nhánh thích hợp. Cốt lõi cơ bản giống như trong câu trả lời của Edward Thomson, nhưng với một số logic tương tác được thêm vào. Tôi thực hiện một số thay đổi nhỏ (bối cảnh thư mục chuyển đổi cho tf
lệnh, trích dẫn cho các đối số - cần thiết nếu có khoảng trống trong thư mục) và chia sẻ nó dưới đây:
@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
Lưu nó ví dụ để chuyển đổi_branch.cmd và thực thi từ bất kỳ thư mục nào từ máy của bạn.
Bạn đã làm gì? – granadaCoder