2011-11-28 110 views
7

我是TFS的新手,需要編寫TSQL查詢以獲取包含在特定變更集版本號中的所有文件和版本號的列表。在網上搜索表格以獲取此信息時,我發現有些人提到使用Tfs_Warehouse數據庫以及其他使用Tfs_DefaultCollection數據庫的人員。我有以下問題:TFS列出具有特定變更集的所有文件和版本號

  • 這兩個數據庫有什麼區別?
  • 爲什麼要用一個而不是另一個?
  • 您使用哪個表來獲取特定變更集的文件/版本信息?
+0

+1了良好的書面問題。我想你知道你可以通過搜索歷史記錄從Visual Studio中獲取這些信息,然後查看更改集詳細信息?但我假設你想以編程方式檢索這個用於其他目的。 –

+1

你打算寫一個.NET應用程序來查詢這個嗎?直接查詢SQL數據庫完全不受支持。 –

+0

這是正確的,我需要以編程方式進行。如果TSQL方法不受支持,那麼有沒有辦法使用VB.Net代碼來完成它? – user1070202

回答

2

您可以使用TFS對象模型中的VersionControlServer.GetChangeset() method

您需要將引用添加到在GAC以下組件:

  • Microsoft.TeamFoundation.Common
  • Microsoft.TeamFoundation.Client
  • Microsoft.TeamFoundation.VersionControl.Client

    Private Shared Sub Main(ByVal args As String()) 
        Dim tfs As TfsTeamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(New Uri("http://tfsserver:8080/tfs/CollectionName"), New UICredentialsProvider) 
        tfs.Connect(ConnectOptions.None) 
        Dim vcs As VersionControlServer = tfs.GetService(Of VersionControlServer) 
        Dim changeset As Changeset = vcs.GetChangeset(changeset ID, True, False) 
    End Sub 
    

然後你可以我請檢查.Changes屬性以查看包含在Changeset中的所有更改。

0

請問tf.exe changeset沒有提供您想要的信息嗎?它有很多選項...

+0

我需要以編程方式執行,所以要麼通過TSQL查詢,要麼通過VB.Net。 – user1070202

+0

沒有什麼能阻止你以編程方式調用'tf.exe'並解析輸出。當然,如果你想*學習TFS API,那就千萬不要這麼做...... – AakashM

9

如果你希望得到從SQL Server數據庫的這些數據,這裏是一個查詢,讓你開始:

SELECT 
    chg_set.CreationDate, 
    chg_set.ChangeSetId, 
    v.FullPath 
FROM dbo.tbl_ChangeSet (nolock)AS chg_set 
    INNER JOIN dbo.tbl_Version (nolock)AS v ON chg_set.ChangeSetId = v.VersionFrom 
    LEFT OUTER JOIN dbo.tbl_File (nolock) AS f ON v.FileId = f.FileId 
WHERE (chg_set.ChangeSetId = [Your changeset ID]) 
ORDER BY chg_set.CreationDate, v.FullPath 

來源: http://www.isosoft.org/taoffi/post/2012/05/22/TFS-database-pause-Change-set-quantitative-statistics-sample.aspx

+0

爲什麼你要直接查詢數據庫而不是通過對象模型? –

+0

我想我的主要原因是「因爲你可以」。我完全理解你們不想讓人們在數據庫中喋喋不休,而且它不被官方支持,但現實是它是一種選擇。如果你不舒服,我不建議在數據庫中玩耍,但對我而言,這是在某些情況下獲得結果的最簡單和最好的方法。 – Matt

+0

夠公平的。只是好奇,真的。如果我是一個DB人,那麼我可能會更加動心。 (但我對SQL很不滿。) –

相關問題