次の方法で共有


ソース管理の概要

更新 : 2007 年 11 月

Visual Studio では、統合開発環境 (IDE: Integrated Development Environment) の VSIP (Visual Studio Integration Protocol) 層を使用してソース管理をサポートします。VSIP では、さまざまなソース管理パッケージをホストできます。通常、ソース管理パッケージは、適切なプロトコルに従って記述されたプラグインとして実装されます。ソース管理プラグインの一例として、Visual SourceSafe でサポートされている SourceSafe LAN プラグインがあります。このプラグインの詳細については、Visual SourceSafe ヘルプを参照してください。

ms171339.alert_note(ja-jp,VS.90).gifメモ :

プラグインはさまざまな種類のソフトウェア モジュールとして実装できますが、Visual Studio では、ソース管理パッケージをプラグインと呼んでいます。

Visual Studio のソース管理は、サードパーティ製ソース管理プラグインを使用するための環境にすぎません。したがって、プラグインをインストールしない限り、その機能はアクティブにはなりません。サードパーティ製ソース管理プラグインを使用するには、通常、サイトのクライアント コンピュータとサーバー コンピュータに、サードパーティ製のアプリケーションやソース管理プラグインをインストールする必要があります。これらをサードパーティの指示に従ってインストールすると、その機能を Visual Studio から使用できるようになります。有効になる操作は、ソース管理プラグインによって異なります。パッケージ固有の操作上の詳細については、サードパーティのドキュメントを参照してください。

Visual Studio におけるソース管理の設計の詳細については、Visual Studio ヘルプでソース管理の概要についてのトピックを参照してください。また、ヘルプのこのセクションには、Visual Studio と互換性のあるサードパーティ製ソース管理パッケージを開発する際に必要なすべての情報が含まれています。

Visual Studio におけるソース管理のサポートの基礎

Visual Studio におけるソース管理の基本的なサポートには、ソース管理プラグインと環境オプションの設定、プラグインの切り替え、データベース アクセス、および Visual Studio のプロジェクト、ソリューション、ファイルと関連するメタデータのバージョン管理と操作が含まれます。Visual Studio のソース管理では、データベース アクセスを制御するためのプロトコルも適用されます。たとえば、ファイルを変更するユーザーは、そのファイルを排他的にチェックアウトする必要があるという、ロック-変更-ロック解除の作業スタイルなどです。

ソース管理プラグインを操作する際には、Visual Studio の機構においてソース管理を使用する必要があるという点に注意することが重要です。Visual SourceSafe エクスプローラなどのプラグインを使用する際に、サードパーティが提供する他のクライアント アプリケーションを使用しないでください。Visual Studio のソース管理機構を適切に使用することによって、正しいファイルだけをソース管理に追加し、Visual Studio のプロジェクト ファイルとソリューション ファイルを、プラグイン固有の正確な詳細情報で更新できます。

ソース管理プラグインの設定と切り替え

Visual Studio のソース管理では、[オプション] ダイアログ ボックスの [ソース管理] を使用して設定とプラグインの切り替えを行うことができます。このダイアログ ボックスは、Visual Studio の [ツール] メニューの [オプション] をクリックすると表示されます。[オプション] ダイアログ ボックスでは、ソース管理に使用するプラグインの選択、および選択したプラグインの環境オプションの設定を行うことができます。

個人とチームが、Visual Studio IDE のソース管理機能を利用できるようにするには、以下の作業を行う必要があります。

  • ソース管理プラグインを使用できるかどうかを確認します。

  • 使用するソース管理プラグインがコンピュータにインストールされていない場合は、そのプラグインをサポートするサードパーティ製品をインストールし、Visual Studio を再起動して登録します。

  • 使用するプラグインの機能に応じて、ソース管理データベースを作成します。

  • データベースの場所へのリンクをチームのすべてのメンバに送ります。

データベース アクセス

[チェックアウト] や [ソース管理に追加] など、基本的なデータベース アクセス コマンドは、Visual Studio の [ファイル] メニューで利用できます。ただし、これらのコマンドは、使用するソース管理プラグインを選択した後にのみアクティブになります。基本的なデータベース アクセス コマンドのいずれかを使用すると、選択したプラグインによって対応するサードパーティの機能や環境が起動し、関連付けられた操作が実行されます。

プラグインを選択するだけでアクティブになるアクセス操作もあれば、Visual Studio のソリューション エクスプローラで Visual Studio のプロジェクト、ソリューション、またはファイルも選択している場合にのみ利用できる操作もあります。たとえば、[ソース管理に追加] コマンドは、プラグインを選択すると使用できるようになりますが、[チェックイン] コマンドを使用するには、ソリューション エクスプローラで項目を選択しておく必要があります。

ソース管理によるファイルの処理

Visual Studio のソース管理には、次のファイルを追加できます。

  • ソリューション ファイル (*.sln)。

  • プロジェクト ファイル (*.csproj、*.vbproj など)。

  • XML をベースとしたアプリケーション構成ファイル。Visual Studio プロジェクトの実行時の動作を制御するために使用します。

ソース管理に追加できないファイルは次のとおりです。

  • ソリューション ユーザー オプション ファイル (*.suo)。

  • プロジェクト ユーザー オプション ファイル (*.csproj.user、*.vbproj.user など)。

  • Web 情報ファイル (*.csproj.webinfo、*.vbproj.webinfo など)。Web プロジェクトの仮想ルートの場所を制御します。

  • ビルド出力ファイル (*.dll および *.exe)。

名前空間の変更の反映

Visual Studio のソース管理では、ソース管理プラグインの名前空間の変更の反映をサポートしています。変更の反映は、削除、名前の変更、および移動の各操作に適用されます。変更の反映を有効にする操作を要求すると、ソース管理プラグインによって、ソース管理対象の項目の作業コピー、データベース内のマスタ コピー、および他のユーザーのコピー (チェックインした項目を他のユーザーが取得している場合) が変更されます。

ソース管理でソリューションおよびプロジェクトを処理するしくみ

ソース管理にソリューションまたはプロジェクトを追加したときには、まず、追加した項目の統合ルートがソース管理プラグインによって識別される必要があります。このルートは、ソリューションまたはプロジェクトを構成するすべての作業フォルダとファイルの親ディレクトリへのパスです。

統合ルートは通常、ディスク上の物理パスにマップされます。ただし、ソリューションに含まれているファイルまたはプロジェクトが複数のディスク ドライブ上に存在する場合、統合ルートをマップできる物理フォルダはありません。ソリューションはドライブをまたぐことができますが、ソース管理の統合ルートがドライブをまたぐことはできません。この状況をサポートするために、Visual Studio のソース管理では、スーパー統合ルートの概念をサポートしています。このルートは一種の仮想コンテナであり、この下にソース管理対象のソリューションに含まれるすべてのプロジェクトとファイルが配置されます。

高度な機能を備えたソース管理プラグインを使用してソリューションを追加すると、プラグインによってデータベース内に空のソリューション ルート フォルダが作成されます。このフォルダには、ソース管理対象のソリューション内のすべての項目が格納されます。既定では、このフォルダは <ソリューション名>.root です。

ms171339.alert_note(ja-jp,VS.90).gifメモ :

ソース管理に単一のプロジェクトを追加した場合には、ルート フォルダは作成されません。

ソリューション ルートを使用すると、次のような利点があります。

  • 確認メッセージの数が減少します。ソリューション ルートによって、ソリューションのソース管理のバインディング数を最小限に抑えることができます。したがって、ソース管理にソリューションを追加したり、他のタスクを実行したりするときに、表示される確認メッセージの数が最小限に抑えられます。

  • プロジェクトがカプセル化されます。1 つ以上のプロジェクトが別のパーティションやコンピュータに存在する場合でも、ソリューション ルートによって、ソリューション内のすべてのプロジェクトを 1 つのまとまりとして容易に識別できます。

<ソリューション名>.root フォルダの作成を無効にすることもできますが、これはお勧めしません。詳細については、「方法 : <solutionname>.root フォルダの作成を無効にする」を参照してください。

Visual Studio のソリューションには、整形式のソリューションと整形式ではないソリューションがあります。整形式のソリューションとは、ディスク上の階層構造がソリューション エクスプローラ内の構造と一致するソリューションです。整形式のソリューションに含まれるすべてのプロジェクトは、ディスク上のソリューション フォルダのサブフォルダに格納されます。ソリューションが整形式の場合、ソース管理にソリューションを追加すると、ソース管理プラグインによって *.root フォルダの下にフォルダが作成され、そのソリューションのソリューション ファイル (*.sln) とソリューション ユーザー オプション ファイル (*.suo) のマスタ コピーが格納されます。最終的に、ソース管理データベースに追加される各プロジェクトごとに .sln フォルダの下にフォルダが作成されます。

ソリューションが整形式ではない場合、ソース管理プラグインによって、ソリューションとその最初のプロジェクトを格納するフォルダが作成されます。その後、追加される各プロジェクトのフォルダは、このソリューション フォルダに対して並列に作成されます。

ソリューションまたはプロジェクトのビュー

Visual Studio には、ソース管理対象のソリューションまたはプロジェクトの 3 種類のビューが用意されています。デザイン ビュー、ソース管理ビュー、および物理ビューです。これらのビューの個々の要素が一対一でマッピングされていると、多くのソース管理タスクが実行しやすくなります。ただし、ソリューションとプロジェクトを作成し、Visual Studio の既定の設定を使用してソース管理に追加した場合、ソリューションとプロジェクトは、ソリューション エクスプローラやデータベース内での編成方法と必ずしも同じ方法でディスク上でも編成されるわけではありません。

ソリューションまたはプロジェクトのデザイン ビューは、ソリューション エクスプローラに表示されます。このビューは、ソリューションまたはプロジェクトの内容を論理的に表したものです。通常、デザイン ビューは系統立てられており、何らかの意味を持っています。不要なファイルは非表示になり、多数の物理的な場所に点在するファイルが単一のプロジェクト コンテナに格納されています。

ソリューションまたはプロジェクトのソース管理ビューは、Visual SourceSafe エクスプローラなど、スタンドアロン アプリケーションに表示されます。このビューは、ソリューションまたはプロジェクトの論理ビューでもあります。ただし、ソース管理ビューは、必ずしも論理ビューを反映しているわけではありません。

ソリューションまたはプロジェクトの物理ビューは、Windows ファイル エクスプローラに表示されます。このビューが論理ビューまたはソース管理ビューの階層構造を反映していることはほとんどありません。

以下のガイドラインは、ソース管理対象のソリューションおよびプロジェクトのデザインビュー、物理ビュー、ソース管理ビューの編成を正確に一致させるうえで役立ちます。

  • まず空のソリューションを作成してから、そのソリューションにプロジェクトを追加します。これにより、ストレージ内でソリューションとプロジェクト間の論理的な親子関係を維持できます。ソリューションをソース管理に追加すると、ソース管理ビューとデザイン ビューでは、共にディスク上のソリューション階層をミラー化します。

  • 各ソリューションには、そのソリューションに含まれる各プロジェクトの名前とは異なる一意の説明的な名前を付けます。

  • ソース管理対象のソリューションまたはプロジェクトにリンク ファイルを追加することは避けます。

  • できれば、1 つのディスク ドライブ上のソリューションまたはプロジェクトにすべてのファイルを格納します。

ソース管理の接続とバインディング

Visual Studio では、接続を Visual Studio とデータベース サーバー間のライブ データ リンクと定義しています。ソリューションまたはプロジェクトをソース管理に追加すると、ソース管理プラグインによって、項目とそのすべての内容がディスクからデータベースにコピーされます。ソリューション ファイルまたはプロジェクト ファイルを格納するフォルダごとに、1 つのソース管理フォルダが作成されます。項目を追加した後、ソース管理プラグインによって、ソリューションまたはプロジェクトのローカルの作業コピーがデータベース内のバージョンにバインドされます。

ソース管理対象のすべてのソリューションには、ソース管理のバインディングが少なくとも 1 つは存在します。ただし、1 つの項目に複数のバインディングが存在し、データベースへの複数の接続が必要となる可能性もあります。バインディングと接続の数は、最初にソリューションを作成する方法と、そのソリューションのプロジェクトとファイルがすべて同じパーティションに保存されているかどうかによって異なります。

バインディングと接続の一例として、複数のプロジェクトが含まれたソース管理対象の整形式のソリューションを、複数の部屋がある 1 軒の家と考えてみます。家を建てたときに、ある部屋から外部への単一の高速データ回線を導入しました。他の部屋にデータを配信するために、ファイアウォールの内側にルーターを設置し、インターネット サービス プロバイダに料金を支払って、自宅からインターネットに接続しています。

ソース管理のバインディングは、自宅用に構築されたこの単一のデータ回線と考えることができます。ソース管理対象のソリューションを開くと、そのバインディングを渡って接続が作成されます。接続によって、ディスク上にあるソリューションの作業コピーと、データベースにあるソリューションのマスタ コピー間のハンドシェイクが確立されます。

ソース管理対象のソリューションが整形式ではない場合は、すべての部屋が直接インターネットに接続されている家と同様に考えることができます。単一接続の家と比べると、インターネット使用料が高くなり、維持費も増加します。また、別のインターネット サービス プロバイダに切り替えることが非常に困難になるうえ、時間もかかります。

ソリューションとプロジェクトでソース管理の単一のバインディングを共有するのが理想的です。複数バインディングのソリューションよりも、単一バインディングのソリューションの方が容易に管理です。単一バインディングのソリューションでは、以下の作業が容易になります。

  • オフラインで作業するためにソース管理から切断する。

  • ネットワークに再接続した後にデータベースに接続する。

  • 1 つの手順で分岐する。

プロジェクトを追加する前に、空のソリューションを作成することによって、単一バインディングのマルチプロジェクト ソリューションを作成できます。また、ソリューションとプロジェクトのペアを作成するときに、[新しいプロジェクト] ダイアログ ボックスの [ソリューションのディレクトリを作成] をオンにすることによって、これを行うこともできます。

1 つの手順でソリューションとプロジェクトのペアを作成したときに、[新しいプロジェクト] ダイアログ ボックスの [ソリューションのディレクトリを作成] (既定ではオフ) をオンにしなかった場合は、2 つ目のプロジェクトをソリューションに追加すると、2 つ目のバインディングが作成されることになります。最初のプロジェクトとソリューションに対して、1 つのバインディングが作成されます。追加されるプロジェクトごとに、バインディングが作成されます。

ソース管理の用語

Visual Studio のドキュメントでは、さまざまな用語を使用してソース管理の機能や概念について説明しています。次の表に、一般的な用語の一部についてその定義を示します。

  • 基本バージョン
    ローカル バージョンの派生元であるサーバー バージョンのファイル。

  • バインディング
    ディスク上のソリューションまたはプロジェクトの作業フォルダを、データベース内のソリューションのフォルダに関連付ける情報。

  • 分岐
    ソース管理対象の共有ファイルまたはプロジェクトの新しいバージョン (分岐) を作成するプロセス。分岐を作成すると、ソース管理対象の 2 つのバージョンはある時点までは共有の履歴を持ち、その時点以降は履歴が分岐します。

  • コンフリクト
    複数の開発者が同じファイルをチェックアウトして編集した場合に、同じコード行に対して加えられた複数の異なる変更。

  • 接続
    ソース管理クライアント (Visual Studio など) とソース管理データベース サーバー間のライブ データ リンク。

  • データベース
    すべてのマスタ コピー、履歴、プロジェクト構造、およびユーザー情報が格納されている場所。1 つのプロジェクトは、常に 1 つのデータベースに格納されます。1 つのデータベースには複数のプロジェクトを格納できます。また、複数のデータベースを使用することもできます。データベースを表す用語としては、他にリポジトリやストアも一般的に使われます。

  • 履歴
    ファイルがソース管理に最初に追加されて以来、そのファイルに対して加えられた変更の記録。バージョン管理によって、ファイルの履歴の任意の時点までさかのぼり、その時点でのファイルの内容を復元できます。

  • ラベル
    ソース管理対象である項目の特定のバージョンに割り当てられる、ユーザー定義の名前。

  • ローカル コピー
    チェックインするまで変更内容が保存されているユーザーの作業フォルダ内のファイル。ローカル コピーは、作業コピーと呼ばれる場合もあります。

  • マスタ コピー
    ソース管理対象のファイルの最後にチェックインされたバージョン。これに対して、作業フォルダ内のファイルはローカル コピーと呼びます。マスタ コピーを表す他の用語は、サーバー バージョンおよびデータベース バージョンです。

  • マージ
    1 つのファイルの 2 つ以上の変更されたバージョンに含まれる相違点を、新しいファイル バージョンに統合するプロセス。マージは、同じファイルの異なるバージョン、または同じファイル バージョンに加えられた変更内容に影響する可能性があります。

  • 共有ファイル
    複数のソース管理の場所に存在する複数のバージョンを持つファイル。共有ファイルを表す他の用語は、コピーおよびショートカットです。

  • ソリューション ルート
    ソース管理対象のソリューション内のすべての項目が格納されるデータベース内の空のフォルダ。既定では、このフォルダは <ソリューション名>.root です。

  • スーパー統合ルート
    その下にソース管理対象のソリューション内のすべてのプロジェクトとファイルが配置される仮想コンテナ。たとえば、[SUR]:\ は、[SUR]:\C:\Solution\ProjOne および [SUR]:\D:\ProjTwo にあるプロジェクトが含まれたソース管理対象ソリューションのスーパー統合ルートです。

  • 統合ルート
    ソース管理対象のソリューションまたはプロジェクト内のすべての作業フォルダとファイルの親ディレクトリへのパス。たとえば、C:\Solution は、C:\Solution、C:\Solution\ProjOne、および C:\Solution\ProjTwo にあるファイルが含まれたソース管理対象ソリューションの統合ルートです。

  • 作業フォルダ
    ソース管理対象の項目のローカル コピーが格納される場所。通常はユーザーのコンピュータです。作業フォルダを表すもう 1 つの用語は、ワークスペースです。

参照

処理手順

方法 : <solutionname>.root フォルダの作成を無効にする

参照

[新しいプロジェクト] ダイアログ ボックス