2012-05-10 25 views
3

我正在使用一個本地工作區來獲取和檢入TFS代碼,從而在我的機器上開發代碼。我還在構建一個使用我的機器並需要獲取最新代碼的自動化CI應用程序。我使用以下方法來獲得最新的CI應用:使用tf.exe獲取不同工作區的代碼

tf get $/abc/abc /recursive /all 

我想用一個不同的地方工作區,工作區的CI,以獲得最新的,以避免與開發代碼衝突。但使用tf,我無法在使用get命令時指定工作區,並且MSDN doc也不會顯示要執行此操作。我如何使用「tf get」來指定我想要使用的工作區?

回答

7

tf get之前,將目錄更改爲CI工作區中映射的目錄之一。 tf get將使服務器和工作區不在映射驅動器的詳細信息中。

0

我還創建了一個自動化的構建過程,並作爲執行「乾淨」的一部分獲得,即重命名當前的本地工作文件夾,然後在執行完整之前將文件從tfs重新獲取到工作文件夾的乾淨副本構建和單元測試。我在單獨的文件夾中使用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" />