kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

TFSのプロジェクトとコレクション

TFSはプロジェクトコレクション、チームプロジェクト、プロジェクトという三階層で構成されています。どんな時に使い分けるのでしょうか?ちょっと解説してみます。
なお、5/20時点の情報なので、今後の更新で変わる可能性があります。

プロジェクトコレクション

最大の、最も分割される管理単位です。SQL Serverのデータとして管理される単位、といってもいいでしょう。たとえば、TFSの管理ツールでプロジェクトコレクションをアタッチ、デタッチすることができますが、この単位でバックアップおよびリストア、データ移行(もしくはアップグレード)することになるでしょう。
TFSで使用するSQL Serverは一つのプロジェクト・コレクションしか提供できないということはありません。

ここにあるように、Server Database Label(これは英語版なので日本語版でも相当するところがあるはず)に接頭子をつければ一台のSQL Serverで複数のプロジェクトコレクションを提供することができます。
オンプレミス版のTFSはディスクやSQL Serverの上限の限り、複数のプロジェクトコレクションを作ることができますが、TF Serviceでは一つのみです。

チームプロジェクト

プロジェクトコレクション内でVisual Studioからチームで作るものです。SharePointとの連携はこれになりますね。プロジェクトテンプレートもこの範囲で影響します。CMMI/Scrum/Agile/WaterFall/その他独自などの開発プロセスを選びます。
Update2以降、Gitが選べるようになりましたがオンプレミス版のTFSはまだちゃんとサポートしていないようですね。TF Serviceのみサポートのはず。
昔のTFSは確かチームプロジェクト間のフォルダの移動や分岐(ブランチ)はできなかったはずですが、少なくともTFS 2012 Update2/TF Serviceではできるようですね。TFS 2010でだいぶ変わったからでしょうか。

プロジェクト

チーム配下内で実際に作られるVisual Studioのプロジェクトとなります。

セキュリティ

TFSではそれぞれの単位でセキュリティの設定を行うことができます。Active Directoryと連携すると楽ですね。Active Directoryでセキュリティグループを作っておけば、グループを追加するだけで済みます。
あとはActive Directory側のセキュリティグループから追加、削除すればいいだけ。Active Directoryと連携しない場合はTFS側のセキュリティグループを使えばいいでしょう。