我正在使用一个本地工作区在我的机器上开发代码以从TFS获取和检入代码。我还在构建一个使用我的机器并需要获取最新代码的自动CI应用程序。我使用以下内容获取CI应用程序的最新信息:
tf get $/abc/abc /recursive /all
我想使用不同的本地工作区(CI工作区)来获取最新信息以避免与开发代码冲突。但是使用tf,我在使用get命令时无法指定工作空间,而MSDN doc无论如何都没有显示。如何使用“tf get”指定我想要使用的工作区?
答案 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" />