使用tf.exe获取不同工作区的代码

时间:2012-05-10 14:31:23

标签: tfs continuous-integration tf-cli

我正在使用一个本地工作区在我的机器上开发代码以从TFS获取和检入代码。我还在构建一个使用我的机器并需要获取最新代码的自动CI应用程序。我使用以下内容获取CI应用程序的最新信息:

tf get $/abc/abc /recursive /all

我想使用不同的本地工作区(CI工作区)来获取最新信息以避免与开发代码冲突。但是使用tf,我在使用get命令时无法指定工作空间,而MSDN doc无论如何都没有显示。如何使用“tf get”指定我想要使用的工作区?

2 个答案:

答案 0 :(得分:8)

tf get之前,将目录更改为CI工作空间中映射的目录之一。 tf get将使服务器和工作区基于映射驱动器的详细信息。

答案 1 :(得分:0)

我也在创建一个自动构建过程,并作为执行“干净”获取的一部分,即重命名当前的本地工作文件夹,然后在执行完整构建之前将文件从tfs重新获取到工作文件夹的干净副本和单元测试。我在一个单独的文件夹中使用Nant脚本,因此不能只更改目录(更改Nant中的当前目录不适用于此问题)。我的解决方案是创建并运行批处理文件。下面的示例Nant脚本:

<!--do a clean get to the solution folder-->
    <target name="clean_get">

    <!--Create the batch file-->
    <property name ="batch.file" value="clean_get.bat" />
    <echo file="${batch.file}" append="True">md ${workfolder.path}</echo>
    <echo file="${batch.file}" append="True">${environment::newline()}cd ${workfolder.path}</echo>
    <echo file="${batch.file}" append="True">${environment::newline()}tf get $/${project.name}  /recursive</echo>


    <!--Run the batch file-->
    <exec program="clean_get.bat" >
    </exec>

<!--Delete the batch file - we're done with it-->
<delete file="${batch.file}" failonerror="false" />