2010-07-13 62 views
5

如果給定tfs中的特定文件夾路徑,我需要遞歸查找文件夾內給定變更集的所有文件和文件夾。換句話說,我需要在給定的變更集中獲得tfs路徑的傳遞閉包。我這樣做的問題是列出tfs中的特定文件夾的內容.. 這將如何在C#中可能?列出tfs中文件夾的所有內容

回答

6

我假設你想「文件夾中的內容作爲變更X的」,而不是

「那名變更X的部分文件夾內容」

GetIte MS是使用正確的判罰,只是傳遞一個版本規格爲您所感興趣的變更

http://msdn.microsoft.com/en-US/library/bb138911.aspx

因此,假設你已經有了一個對VersionControlServer實例的引用:

var myFolderAtChangeset17 = versionControlServer.GetItems("$/MyFolder", new ChangesetVersionSpec(17), RecursionType.Full); 

如果我誤解你碰巧想「那名變更X的部分文件夾內容」,有這樣做,但得到的變更與GetChangeset,只是過濾Changes是很簡單的幾個不同的方法。

+0

我不知道該版本的規範的一部分。這是我想要的。謝謝... – Sidd 2010-07-14 15:28:58

-1

您可以使用changeset webservice獲取包含特定變更集的所有已更改項目的XML文檔。然後,只需循環查看已更改項目的列表,看看它們是否在您正在尋找的路徑中。

這裏的URL到變更Web服務:

的http:// your_tfs_server /VersionControl/Changeset.aspx?artifactMoniker= your_changeset_number & webView的=真

+0

可以我只是做一個VersionControlServer.getItems()和環衍生陣列救援人員到場。我只是現在試試... – Sidd 2010-07-13 18:54:10

+0

Downvoted(對不起大衛)。您不應該在任何(正常)情況下使用web服務來執行此操作。這些是內部的,如有更改,恕不另行通知 – Robaticus 2010-07-13 19:17:28

2

像這樣的東西可能會更你在找什麼對於。這將獲取變更集中的所有更改並遍歷它們,從而識別給定路徑中的變更。這可以通過LINQ查詢被縮短,但我離開它多一點膨脹,得到什麼,我想說的要點:

TeamFoundationServer tfs = new TeamFoundationServer("http://tfs:8080"); 
    VersionControlServer vcs = tfs.GetService<VersionControlServer>(); 

    Changeset cs = vcs.GetChangeset(6284868); 

    foreach (Change change in cs.Changes) 
    { 
     if (change.Item.ServerItem.StartsWith("$/Application Common/Dev/src")) 
     { 
      System.Diagnostics.Debug.WriteLine(string.Format("Changeset {0}, file {1}, changes {2}", 
       cs.ChangesetId, change.Item.ServerItem, change.ChangeType.ToString())); 
     } 
    } 
+0

謝謝..但我並不需要一個特定的變更項目。我需要tfs中給定文件夾下的所有文件和文件夾。 – Sidd 2010-07-13 19:42:08

+1

然後你可以使用GetItems()...但你的問題確實提到了變更集。 – Robaticus 2010-07-13 21:04:08

0

我覺得像這樣的工作..


    TeamFoundationServer tfs = new TeamFoundationServer("http://tfs:8080"); 
    VersionControlServer vcs = tfs.GetService(); 
    ItemSet items; 

    items = vcs.GetItems(tfsPath, RecursionType.Full); 

如果您有任何其他想法,請把它們..

+0

你的代碼丟失,可以定義tfsPath傳遞給GetItems – 2011-10-04 21:09:01

相關問題