2011-11-28 17 views
7

TFSが新しく、特定のチェンジセットバージョン番号に含まれていたすべてのファイルとバージョン番号のリストを取得するためにTSQLクエリを作成する必要があります。この情報を得るためにテーブルをオンラインで検索しているうちに、Tfs_WarehouseデータベースとTfs_DefaultCollectionデータベースを使用している人がいます。私は次の質問があります:TFS特定のチェンジセットを含むすべてのファイルとバージョン番号のリスト

  • 2つのデータベースの違いは何ですか?
  • なぜ、もう一方の代わりに1つを使用しますか?
  • 特定のチェンジセットのファイル/バージョン情報を取得するために使用するテーブルはどれですか?
+0

+1。ヒストリーを検索してからChangeset Detailsを表示することで、Visual Studioからこの情報を取得できることに気づいたと思いますか?しかし、私はあなたがこれを他の目的のためにプログラムで取得したいと思っています。 –

+1

これを問い合わせるために.NETアプリケーションを作成することはできますか? SQLデータベースを直接照会することは完全にサポートされていません。 –

+0

それは正しいです、私はそれをプログラムで行う必要があります。 TSQLメソッドがサポートされていない場合、VB.Netコードを使用してそれを行う方法はありますか? – user1070202

答えて

2

VersionControlServer.GetChangeset() methodは、TFSオブジェクトモデルから使用できます。あなたは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 
    

ChangeSetに含まれるすべての変更を表示するには、.Changesプロパティを指定しないでください。

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

私の主な理由は "あなたができるから"だと思います。私は皆さんがdbで人々を悩ませたくないことを完全に理解しています。正式にはサポートされていませんが、現実的にはオプションです。あなたが快適でない場合は、DBで遊んではいけませんが、私にとっては、これは特定のケースで結果を得るのに最も簡単で最良の方法です。 – Matt

+0

十分に公正。本当に好奇心が強い。もし私がDBの男なら、私はもっと誘惑されるかもしれません。 (しかし私は悲惨なことにSQLで貧弱です。) –

関連する問題