TFS Listing of all files and version numbers with

2019-06-17 10:27发布

问题:

I'm new to TFS and needing to write a TSQL query to get a listing of all files and version numbers that were included in a particular changeset version number. While searching online for the tables to get this information I found some people mentioning to use the Tfs_Warehouse database and others that used the Tfs_DefaultCollection database. I have the following questions:

  • What is the difference between the two databases?
  • Why would you use one instead of the other?
  • Which tables do you use to obtain the file/version information for a particular changeset?

回答1:

You can use the VersionControlServer.GetChangeset() method from the TFS Object Model.

You will need to add references to the following assemblies in the 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
    

Then you can inspect the .Changes property to see all the changes included in the Changeset.



回答2:

If you're looking to get this data from the SQL Server database, here is a query to get you started:

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

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



回答3:

Does tf.exe changeset not provide the information you want? It's got lots of options...