4

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

tf get $/abc/abc /recursive /all

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

4

2 回答 2

8

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

于 2012-05-10T14:41:14.707 回答
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" />

于 2014-03-17T07:54:31.257 回答