TFS 自动同步Server 端文件的批处理命令

时间:2024-06-24 12:07:44

TFS 自动同步Server 端文件的批处理命令

目前在我们组的工作中很多时候需要将TFS上Server端的代码自动无人值守的同步到本地中来, 找到了一些解决方案的资料http://bbs.scmroad.com/archiver/?tid-21003.html

经过试验,我们总结成以下步骤,希望对大家有所借鉴。

Steps:

1.       点选VS Source Explorer 上面的TFS目录列表。

2.       新建一个TFS 的 workspace。

3.       点击Source Control Folder 。

4.       在Source folder中选择你要用从Server端同步的目录。

5.       在Local Folder中选择本地同步的文件夹。

TFS 自动同步Server 端文件的批处理命令

6.打开本地注册表,进入下图中标注的Key node path. 新建一个键值项,键值项的value指向你的TFS Server地址。

如果新建的key(E.g. TFSServer)的父节点的node(E.g. Servers)不存在, 则需要先创建一个。

TFS 自动同步Server 端文件的批处理命令

7.新建一个批处理文件,写入以下代码。将批处理加到Windows的计划任务后即可自动执行同步TFS。

@ECHO OFF

REM 本地映射TFSproject的路径

SET GetPath="I:\TFSAutoDownload\TFSRFT_Gen850"

REM TFSproject的路径

SET TFSPath="$/Geneva_QA/Branches/Release/Geneva_8.5.Up4/RFTTrunk"

REM 创建的用于同步的TFS Workspace的名字

SET WorkspaceName="TFSAuto850"

REM 在注册表中注册的TFS的键值

SET TFSServer="TFSServer"

REM 本地安装的TFSExplore路径,一般默认的是指向C

SET VSLocPath="E:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE

ECHO Trying TFS get...

ECHO.

REM IF NOT EXIST Create GetPath

IF NOT EXIST %Getpath% MD %Getpath%

REM if exists remove WORKSPACE and create NEW WORKSPACE

REM 开始执行同步的时候在参数列表中要给出连接帐号和密码

%VSLocPath%\tf.exe" workspace /delete %WorkspaceName% /noprompt /s:%TFSServer% /login:dwei,!ufida1

%VSLocPath%\tf.exe" workspace /new /s:%TFSServer% %WorkspaceName% /noprompt /login:dwei,!ufida1

REM unmap default WORKING FOLDER for newly created WORKSPACE

%VSLocPath%\tf.exe" workfold /s:%TFSServer% /workspace:%WorkspaceName% /unmap $/ /login:dwei,!ufida1

REM map WORKING FOLDER for newly created WORKSPACE

%VSLocPath%\tf.exe" workfold /server:%TFSServer% /workspace:%WorkspaceName% /map %TFSPath% %Getpath% /login:dwei,!ufida1

REM get the recent path through DOS command

pushd %Getpath%

REM get latest source from TFS

%VSLocPath%\tf.exe" get %TFSPath% /recursive /noprompt /login:dwei,!ufida1

ECHO.

REM move back to actual path through DOS command

popd

ECHO TFS get completed...