2011-12-01 170 views
4

我正嘗試使用TFS API從工作區內的服務器檢索最新的代碼。 我發現這個問題:使用TFS API獲取最新版本

How do you get the latest version of source code using the Team Foundation Server SDK?

這基本上是我想做的事情;但是,我想使用現有的工作區,並只檢索代碼的某個部分。這可能嗎?

例如(使用以上問題給出的例子):

workspace.Get(request, GetOptions.GetAll | GetOptions.Overwrite, "$/MyFolder/MyProject"); 

是這樣的可能,而不必設置一個新的工作區或東西嗎?

+0

請不要使用GetAll和覆蓋,除非你真的需要 - 它們會給服務器和客戶端增加不必要的處理開銷,以及網絡開銷。 –

+0

我絕對需要這樣做,因爲程序的重點是將所有最新的源代碼(在指定的子目錄內)檢索到客戶端PC。這應該是一個不經常的過程。 –

+2

對,我的觀點是,服務器足夠聰明,可以在不強制或覆蓋標誌的情況下爲您提供最新的源代碼,除非您在工作區中做了一些可怕的事情。 –

回答

5

您需要獲得對您的工作有這樣的訪問:

var vcServer = teamProjectCollection.GetService<VersionControlServer>(); 
Workspace myWorkspace = vcServer.GetWorkspace("workspaceName", "workspaceOwner"); 

然後你得到最新的一個

myWorkspace.Get(); 

或改善你想通過諮詢this得到什麼。

爲了瞭解您的工作空間(S)的詳細信息在導航VS到

「文件」> 「源代碼控制」> 「工作區...」

+5

怎麼樣衝突? –