Open棟梁Project - マイクロソフト系技術情報 Wiki
目次 †
概要 †
主要な構成管理ツールについて説明します。
ざっくり、
- トレンドとしては、
- OSSのSVN(Subversion)or Git。
- 分散型バージョン管理システムが必要であれば、Git。ただし、難易度が高い。
- 分散型バージョン管理システムが不要であれば、
以下の中央集中型のバージョン管理システムを使用する。
- SVN(Subversion)
- TFS(TFVC : Team Foundation Version Control)・
- TFSは、
- バージョン管理システムに中央集中型のTFVCだけでなく分散型のGitも選択できる。
- バージョン管理システムの機能だけでなく、ALM ソリューションとしての機能を持つ。
ALMとは、ソフトウェア開発における要件管理から変更・構成管理、テスト管理
など、アプリケーション・ライフサイクル全般を総合的にサポートする機能。
ツール †
紹介するツール †
- SVN(Subversion)
- VSS(Visual SourceSafe?)
- TFS(Team Foundation Server)
- Git
異なる点 †
- ロック動作の違い
近年主流となっているSVNとTFSは、VSSの既定の排他ロックの動作と異なる。
- 動作モデル
- 排他ロックするツールは、排他ロックによりコンフリクトを防止する(ロックモデル)。
- 排他ロックしないツールは、コンフリクトをマージで対応する(マージ修正モデル)。
- VSS上でブランチを作成した場合、
- 共有と言う仕組みを使用し、変更が無い限り同じ母体を共有できる共有モデル。
- 共有を解除すると、別のファイルとして管理されるようになる。
- SVN上でブランチを作成した場合、
- 差分の仕組みを使用し、変更が無い限り同じ母体を使用する仕様。
- 変更を開始すると、母体からの差分として管理(差分データのみ保持)。
- Git:分散型バージョン管理システムであり、結構違うので、比較しません。
構成管理一般 †
・・・
SVN(Subversion) †
概要 †
サーバ †
- 集中型(クライアント・サーバ型)
- ファイル共有だけではなくHTTP(WebDAV)でもアクセスできる。
クライアント †
- IDEアドオンとしては以下のものがある。
- Eclipse:Subversive
- Visual Studio:AnkhSVN
- DiffツールのWinMerge?と連動させることができる。
リンク †
VSS(Visual SourceSafe?) †
概要 †
サポート †
既に旧バージョンとなっており、サポートが切れている。
問題点 †
- 機能面
- オフラインでは基本的にチェックアウトできない。
- LAN上でのファイル共有をベースとしていて、それ以外の環境(Internet経由等)では使えない。
| Team Foundation Server 2010 | Visual SourceSafe? 2005 |
アーキテクチャ | ● N 階層構造で DB を分離可能。 ● リポジトリには SQL Server を使用 | ● 2階層構造。 ● リポジトリに Windows の共有フォルダを使用 |
遠隔地からのアクセス | ● HTTP 経由でのリモートアクセス ● 遠隔地オフィスにバージョン管理用のキャッシュが設置することでネットワーク負荷を軽減 ● 専用ツール以外にも Web ブラウザによるアクセス機能をサポート | 専用ツールから HTTP 経由による簡易リモートアクセス |
セキュリティ | ● 多重防御による完全なセキュリティ構造 ● プロジェクトをはじめ、ファイルレベルまでアクセス権の設定が可能 | ● リポジトリにアクセスするための権限設定のみ ● 共有フォルダは Explorer などで読み取り可能 |
信頼性 | SQL Server のストアドプロシージャを採用しており、 操作失敗時にはロールバックなどで既存内容を確実に維持 | ● トランザクション処理が非サポートであるため操作失敗時などにロールバックができない ● チェックイン時に DB 容量の確認を行わないため、稀にリポジトリが破損することがある |
スケーラビリティ | ● 同時使用ユーザーは 2000 名以上で設計 ● DB 容量の制限は特にない (SQL Server Express を選択の場合は、その制限に依存) | ● 同時使用ユーザーは 20 名程度で設計 ● DB 容量の制限は 3 ~ 5 GB |
リンク †
TFS(Team Foundation Server) †
概要 †
TFSを導入することにより、
- バージョン管理システムだけでなく、
- ALM ソリューションとしての機能も導入&連携させることができる。
- 自動ビルド・システム
- 作業項目管理
- プロジェクト管理
- コミュニケーション基盤
VSS都の比較 †
バージョン管理システム単体では(VSSと比べ)以下の機能が追加されている。
連携 †
- Eclipse
Team Explorer Everywhereを使用すればEclipseからアクセスすることもできる。
- Git
また、バージョン管理システムとしてGitを使用することもできる。
費用の違い †
VSS 単体の場合 †
TFS 単体の場合 †
- CAL×クライアント台数
- サーバ・ライセンス
- Windows Server
- SQL Server、TFS
- SQL Serverに無償のExpressを使用した場合
- データベースサイズがExpress Edition では 4GBytes となる。
- SQL Server 2008R2からExpress Editionでも10Gの容量まで。
MSDN を使っている場合は †
- Pro 以上のエディションで CAL は付属する。
- サーバライセンスも MSDN の範囲で使用できる。
- 従って、VSS、TFSにアクセスする人全てがMSDNのPro以上のエディションを
持っている場合、別途ライセンスを購入することなくVSS、TFSを利用できる。
TFS Express †
- TFS 2012から、5人まで無償で使用可能なTFS Expressの提供が開始された。
VS Expressは、Team Foundation Server への接続なので全てExpressでの構築も可能。
クライアント・ツール †
Vusial Studioのチーム・エクスプローラからのソースのアクセスが基本になる。
Visual Studio 以外のツールでは、
- コマンドラインツール (tf コマンド)
- Eclipse プラグイン(Team Explorer Everywhere)
からのソース管理が可能となっています。
その他のGUIツールに関しては見つけることができませんでした。
参考 †
@IT †
Microsoft †
参考 †
比較 †
移行 †