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



我正在使用一个本地工作区在计算机上开发代码,以从 TFS 获取和签入代码。我还在构建一个自动化的 CI 应用程序,该应用程序使用我的机器并需要获取最新代码。我使用以下方法来获取 CI 应用程序的最新信息:

tf get $/abc/abc /recursive /all

我想使用不同的本地工作区(CI 工作区)来获取最新版本,以避免与开发代码发生冲突。但是使用 tf,我在使用 get 命令时无法指定工作区,并且 MSDN 文档无论如何都不会显示来执行此操作。如何使用"tf get"指定要使用的工作区?

tf get之前,将目录更改为 CI 工作区中映射的目录之一。 TF Get 将根据映射驱动器的详细信息来设置服务器和工作区。

我还在创建一个自动化构建过程,作为执行"清理"获取的一部分,即重命名当前本地工作文件夹,然后在执行完整构建和单元测试之前将文件从 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" />

最新更新