マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

主要な構成管理ツールについて説明します。

構成管理一般

汎用的なリポジトリ

成果物の一元管理により開発・保守の効率が良くなる。

業務システム寄りのリポジトリ

データ項目辞書などを使用することで
用語の統一化も図ることが出来る。

ツール

前述の汎用的なリポジトリの範囲。

紹介するツール

異なる点

  • コマンド対比表
    Visual SourceSafe?とSubversionの違い - プログラマーな日々
    http://d.hatena.ne.jp/JHashimoto/20110521/1306457767
    アクションVSSのコマンドSVNのコマンド
    リポジトリのファイルをローカルに取得最新バージョンの取得更新
    変更ロックの取得チェックアウトなし(ロックをかけない)
    ローカルとリポジトリ間の差分抽出プロジェクトを選択して「相違点の表示」リポジトリとの同期化
    ローカルの変更をリポジトリに反映チェックインコミット
  • ロック動作の違い
    近年主流となっているSVNTFSは、VSSの既定の排他ロックの動作と異なる。
  • 動作モデル
    • 排他ロックするツールは、排他ロックによりコンフリクトを防止する(ロックモデル)。
    • 排他ロックしないツールは、コンフリクトをマージで対応する(マージ修正モデル)。
  • 動作モデルの変更方法
    • VSS2005でも排他ロックを使用しなモードを使用できる。
    • SVNではneeds-lock属性を付与することにより排他ロック動作が可能。

      crossroad's Blog Subversionでファイルのロックを強制する
      http://bagineer.blog59.fc2.com/blog-entry-33.html

  • ブランチ動作の違い
  • VSS上でブランチを作成した場合、
    • 共有と言う仕組みを使用し、変更が無い限り同じ母体を共有できる共有モデル。
    • 共有を解除すると、別のファイルとして管理されるようになる。
  • SVN上でブランチを作成した場合、
    • 差分の仕組みを使用し、変更が無い限り同じ母体を使用する仕様。
    • 変更を開始すると、母体からの差分として管理(差分データのみ保持)。
  • TFSGitおよびTFVC(未調査)を使用可能
  • Git:分散型バージョン管理システムであり、結構違うので、比較しません。

SVN(Subversion)

概要

サーバ

  • 集中型(クライアント・サーバ型)
  • ファイル共有だけではなくHTTP(WebDAV)でもアクセスできる。

クライアント

  • TortoiseSVNが使用できる。
    • IDEとの連動が無くても十分に使用できる。
  • IDEアドオンとしては以下のものがある。
    • Eclipse:Subversive
    • Visual Studio:AnkhSVN
  • DiffツールのWinMerge?と連動させることができる。

リンク

VSS(Visual SourceSafe?

概要

サポート

既に旧バージョンとなっており、サポートが切れている。

問題点

  • ユーザ毎にライセンス料がかかる
  • 機能面
  • オフラインでは基本的にチェックアウトできない。
  • LAN上でのファイル共有をベースとしていて、
    それ以外の環境(Internet経由等)では使えない。
  • TFSと比べて機能的に劣る。

リンク

TFS(Team Foundation Server)

概要

TFSを導入することにより、

  • バージョン管理システムだけでなく、
  • ALM(アプリケーション ライフサイクル管理)ソリューションとしての機能も導入&連携させることができる。
    1. 自動ビルド・システム
    2. 作業項目管理
    3. プロジェクト管理
    4. コミュニケーション基盤

VSSとの比較

バージョン管理システム単体では(VSSと比べ)以下の機能が追加されている。

  • シェルブ
  • チェックイン・ポリシー

連携

  • Eclipse
    Team Explorer Everywhereを使用すればEclipseからアクセスすることもできる。
  • Git
    また、バージョン管理システムとしてGitを使用することもできる。

費用の違い

VSS単体の場合

  • 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

Git(Global Information Tracker)

OSSホスティング・サービス

GitHub

GitLab

GitBucket

参考

比較

Team Foundation Server 2010Visual 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

移行


Tags: :.NET開発, :ツール類, :構成管理ツール, :CI


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-12-13 (水) 20:25:55 (127d)