2011-11-28 113 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很不满。) –

相关问题