Share via


ワークスペースの作成と操作

更新 : 2010 年 8 月

ワークスペースでは、Visual Studio Team Foundation Server のフォルダーがローカル コンピューター上のフォルダーにマップされます。この動作は、バージョン管理されたチームのファイルで作業を行う場合に必要です。 Team Foundation Server からファイルのローカル コピーを初めてダウンロード ("取得") するときは、保存先としてローカル フォルダーを指定します。 この操作によって既定のワークスペースが作成され、選択されたサーバー フォルダーが選択されたローカル フォルダーにマップされ、マッピングが保存されます。この処理は自動で行われます。

ただし、既定のワークスペースを使用せずに、手動でワークスペースを作成することもできます。 この方法は、バージョン管理されたファイルで作業を行う場合や、複数のフォルダーのファイルで作業を行う場合に最適です。

ワークスペースを手動で作成するときは、固有のバージョン管理されたフォルダーを選択して、分離したグループを論理的に編成します。 それらのフォルダーにグループとして格納されたファイルに対し、次の操作を実行できます。

  • ローカル コピーを最新の情報に更新して、ローカルで変更をビルドしてテストできるように最新のバージョンを保持していることを確認します。

  • ファイルをチェックアウトして変更します。

  • 保留中の変更をチェックイン、シェルブ、または元に戻します。

  • 変更をチェックインする前に競合を予測できるように、他のチーム メンバーが行った保留中の変更を確認します。

このトピックでは、ワークスペースの用語、複雑なワークスペースの作成方法、およびワークスペースに関する一般的な問題について説明します。 ファイルのローカル コピーの取得方法、またはバージョン コントロールへのファイルの追加方法に関する詳細については、「チーム プロジェクトのソースの取得」および「バージョン管理へのファイルの追加」を参照してください。

このトピックの内容

  • ワークスペースの作成に関する基本的なガイドライン

  • ワークスペースの用語

  • 既定のワークスペースによるファイルの迅速な取得

  • ワークスペースの手動作成

  • 複数のワークスペースを使用した複数の分岐での作業

  • 一般的な問題のトラブルシューティング

ワークスペースの作成に関する基本的なガイドライン

ワークスペースを作成するときは、次のガイドラインを考慮する必要があります。

  • 単一のフォルダーからファイルを操作する場合、チーム プロジェクト コレクションのレベルにできるだけ近いフォルダーにマップします。ただし、必要以上に近づけないようにします。 このようにすると、必要なすべてのファイルが取得され、余分なファイルが多数取得されることがなくなります。

  • 複数のマッピングを含む複雑なワークスペースは、ソース コード ツリーとは異なる領域のファイルを取得する場合、またはクローク設定を使用してフォルダーから取得するファイル数を制限する場合にのみ作成します。

  • 複数の分岐で作業する場合は、分岐ごとに独立したワークスペースを作成して、ローカル コンピューター上で分岐を分離します。

  • ファイルをチェックインする前にローカル ビルドを作成して変更をテストする場合は、編集対象のファイルだけでなくビルドに必要なすべてのファイルをマップします。

ワークスペースの用語

ワークスペースでの作業を開始するときは、ローカル フォルダー、サーバー フォルダー、およびそれらのフォルダーをマップするワークスペースの役割を理解する必要があります。

ローカル フォルダーへのバージョン管理フォルダーのマップ

  1. サーバー フォルダーには、チーム プロジェクトのコードとその他のファイルが含まれています。 チーム メンバーは、バージョン管理されたファイルを共有し、ファイルへの変更を追跡し、ファイルを以前のバージョンに戻すことができます。 チーム プロジェクトのサーバー フォルダーを一覧表示するには、チーム エクスプローラーを開き、[ソース管理] をダブルクリックします。

  2. ローカル フォルダーには、バージョン管理サーバーからローカル コンピューターに "取得" またはチェックアウトされたファイルが格納されます。 ファイルを取得すると、ローカル フォルダーにファイルの読み取り専用コピーがダウンロードされます。 ファイルをチェックアウトすると、編集可能なコピーがダウンロードされます。 編集されたファイルを保存すると、変更がローカルに保存されます。そのファイルをチェックインした場合にのみ、変更がサーバーにコミットされます。

  3. ワークスペースは、サーバー フォルダーをローカル フォルダーにマップします。 単純なワークスペースを作成して、単一のサーバー フォルダーを単一のローカル フォルダーにマップするか、または複雑なワークスペースを作成して、複数のマッピングを含めることができます。 ワークスペースに複数のマッピングが含まれる場合は、実行できる操作 (サーバーからの最新バージョンの取得や変更のチェックインなど) に基づいて、フォルダーが 1 つの単位にグループ化されます。 ワークスペースのマッピングを一覧表示するには、[ファイル] メニューの [ソース管理] をポイントし、[ワークスペース] をクリックします。 [ワークスペース] ダイアログ ボックスの [ワークスペース] でワークスペースをクリックし、[編集] をクリックして、[ワークスペースの編集] ダイアログ ボックスを開きます。

既定のワークスペースによるファイルの迅速な取得

Team Foundation Server でバージョン コントロールされているファイルで作業する場合は、ワークスペースを使用する必要があります。 Team Foundation Server からファイルのローカル コピーを初めてダウンロード ("取得") するときは、保存先としてローカル フォルダーを指定します。 この操作によって既定のワークスペースが作成され、選択されたサーバー フォルダーが選択されたローカル フォルダーにマップされ、マッピングが保存されます。この処理は自動で行われます。

既定のワークスペースを使用してファイルをすばやく取得するには

  1. Visual Studio を開き、チーム プロジェクトに接続します。

    詳細については、「Team Foundation Server 上のチーム プロジェクトへの接続およびアクセス」を参照してください。

  2. チーム エクスプローラーで、[ソース管理] をクリックします。

    注意

    これまでにワークスペースを作成していない場合は、ソース管理エクスプローラーを開いたときに作成されます。 コンピューターと同じ名前のワークスペースが、ソース管理エクスプローラーのツール バーの [ワークスペース] ボックスに表示されます。

  3. ファイルのローカル コピーをダウンロードするチーム プロジェクト、フォルダー、または分岐を右クリックし、[ローカル フォルダーにマップ] をクリックします。

    重要

    ローカル ビルドの作成に必要なすべてのファイルの取得をカバーするため、コード ツリーの上位フォルダーを選択していることを確認します。ただし、必要以上に多数のファイルが取得されない位置のフォルダーにします。

    [マップ] ダイアログ ボックスが表示されます。

  4. [ローカル フォルダー] で、省略記号 (...) をクリックして、サーバー ファイルのローカル コピー用に使用する場所を参照します。

  5. [フォルダーの参照] ダイアログ ボックスでローカル コピーの場所を指定します。

    たとえば、「C:\」と入力します。

  6. [新しいフォルダーの作成] をクリックし、ローカル コピーをダウンロードする新しいフォルダーの名前を入力します。

    たとえば、「Workspaces」と入力します。

  7. [フォルダーの参照] ダイアログ ボックスの [OK] をクリックします。

  8. [マップ] ダイアログ ボックスで、[サブプロジェクトも対象] チェック ボックスをオンにして、サーバー フォルダーの下にあるファイルがすべてダウンロードされるようにします。次に、[マップ] をクリックします。

  9. 表示されたメッセージ ボックスで [はい] をクリックし、マップされたファイルの最新バージョンを取得します。

ワークスペースの手動作成

バージョン管理されたファイルで頻繁に作業する場合は、ワークスペースを手動で作成する必要があります。 手動で作成するワークスペースは、チーム プロジェクトの最上位のフォルダーとローカル コンピューター上のフォルダーとのマッピングだけにするなど、シンプルなものにできます。 対照的に、複雑なワークスペースにもできます。1 つのフォルダーからすべてのサブフォルダー、別のフォルダーからほとんどのサブフォルダー、3 つ目のフォルダーから選択されたサブフォルダーへのマッピングを行う場合などです。

選択されたファイルのみに割り当てるワークスペース

  1. フォルダーの下にあるすべてのサブフォルダーをマップするには、[ソース管理フォルダー] に追加します。 [ローカル フォルダー] 列で、ファイルのローカル コピー用として一意のローカル フォルダーを指定します。

  2. フォルダーの下にあるサブフォルダーの一部をマップするには、そのサブフォルダーを 1 つの行に追加して、後続の行に必要でないサブフォルダーをすべて追加します。 [ローカル フォルダー] 列で、ファイルのローカル コピー用として一意のローカル フォルダーを指定します。 [状態] 列で、各フォルダーに対して [クローク] をクリックします。

ワークスペースを手動で作成するには

  1. 作業するフォルダーを決定します。

    1. Visual Studio を開き、チーム プロジェクトに接続します。

      詳細については、「Team Foundation Server 上のチーム プロジェクトへの接続およびアクセス」を参照してください。

    2. チーム エクスプローラーで、[ソース管理] をクリックします。

      注意

      ワークスペースを作成していない場合は、コンピューターと同じ名前で作成されます。 ワークスペースが、ソース管理エクスプローラーのツール バーの [ワークスペース] ボックスに表示されます。

    3. ソース管理エクスプローラーのフォルダーの一覧を表示し、作業対象のフォルダーとサブフォルダーを確認します。

  2. ワークスペースを作成します。

    1. [ファイル] メニューの [ソース管理] をポイントし、[ワークスペース] をクリックします。

    2. [ワークスペースの管理] ダイアログ ボックスで、[追加] をクリックします。

      注意

      既定のワークスペースを再利用する場合は、既定のワークスペースをクリックし、[編集] をクリックすることもできます。

    3. [ワークスペースの追加] ダイアログ ボックスで、ワークスペースの名前を入力します。

  3. マップするフォルダーごとに次の手順を実行します。

    1. [作業フォルダー][ソース管理フォルダー] 列で、最初の空の行をクリックし、省略記号 (...) をクリックします。

    2. [フォルダーの参照] ダイアログ ボックスで、作業対象のファイルが格納されたサーバー上のフォルダーをクリックし、[OK] をクリックします。

    3. (省略可能) フォルダー内のサブフォルダーの一部をマップする場合は、それらのサブフォルダーを 1 つの行に追加して、後続の行に必要でないサブフォルダーを追加します。 [状態] 列で、各フォルダーに対して [クローク] をクリックします。

    4. [作業フォルダー][ローカル フォルダー] 列で、最初の空の行をクリックし、省略記号 (...) をクリックします。

    5. [フォルダーの参照] ダイアログ ボックスで、ファイルをコピーするローカル フォルダーをクリックします。

      重要

      ローカル フォルダーの構造をサーバー フォルダーとできるだけ同じ構造にすると、開発作業がしやすくなります。 この方法は、コマンド プロンプトを頻繁に使用する場合に特に重要です。 たとえば、「ワークスペースの用語」の図を参照してください。

    6. (省略可能) [新しいフォルダーの作成] をクリックし、ローカル コピーを保存する新しいフォルダーの名前を入力します。

      ヒント

      ローカル フォルダーには短い名前を使用すると、ワークスペースのマッピングが簡単になります。

    7. [OK] をクリックします。

複数のワークスペースを使用した複数の分岐での作業

ソフトウェアの 2 つのバージョンで同時に作業するには、複数のワークスペースを作成するのが一般的です。 たとえば、バージョン 3.0 を開発しながら、バージョン 2.0 の更新作業を行うことができます。 別々のワークスペースを作成することで、ファイルを分離し、常に正しいバージョンで作業できるようになります。

ヒント

単一のコード ベースまたは分岐の中の 2 か所で作業する場合にも、複数のワークスペースを使用できます。

複数のワークスペースを作成するには、このトピックで既に説明した「Create a workspace manually」の手順に従って、それぞれのワークスペースを作成します。

この図では、ローカル ユーザーが、新しいバージョンを開発中の分岐 FeatureTeamA 用のワークスペースと、更新用の分岐 Version2 のワークスペースを作成したところを示しています。

2 つのローカル フォルダーに割り当てられた 2 つのワークスペース

分岐ごとに独立したワークスペースを作成するときは、ソース管理エクスプローラーで各分岐内のファイルを表示できます。 各ワークスペースでマップされたファイルを表示するには、[ワークスペース] ボックスを開き、ワークスペースの名前をクリックします。 フォルダーとファイルの一覧は、指定されたワークスペース内で利用可能な項目に従って変化しますが、他のワークスペース内の項目は変化しません。

たとえば、次の図では、TeamA ワークスペース内のフォルダーとファイルを示しています。 [フォルダー] ペインでは、TeamA ワークスペースでマップされたサーバー フォルダーが有効になっていますが、このワークスペースでマップされていない Version2 サーバー フォルダーは無効になっています。

割り当てられたフォルダーを表示した選択されたワークスペース

  1. TeamA は現在のワークスペースです。

  2. TeamA ワークスペースでマップされているフォルダーまたは分岐のみが使用できます。

ワークスペースを分けると、各分岐で行った変更を [保留中の変更] ウィンドウで別々に確認することもできます。 ウィンドウを開くには、ソリューション エクスプローラーを開いてプロジェクトを右クリックし、[保留中の変更を表示] をクリックします。 [保留中の変更] ウィンドウで、[ワークスペース] ボックスを開き、保留中の変更を表示する各ワークスペースをクリックします。

選択されたワークスペースの保留中の変更

一般的な問題のトラブルシューティング

手動で作成したワークスペースではなく既定のワークスペースを使用すると、2 つの一般的な問題が発生する可能性があります。 1 つ目は、変更するファイルがマップされていない場合に、一部の機能が無効になる問題です。 2 つ目は、既定のマッピングが混在する問題です。

これらの問題は通常、現在のマッピングを削除して、このトピックの手順に従って適切なマッピングを 1 つ以上作成することで簡単に解決できます。

一部の機能が使用できなくなる理由

一部の機能が使用できなくなるのは、ローカル フォルダーにマップされていないサーバー フォルダー内のファイルを表示している場合です。 フォルダーをマップしていないと、ファイルのチェックアウト、ファイルの削除、サブフォルダーの作成を行うことができません。 これらの機能にアクセスするには、このトピックの手順に従ってサーバー フォルダーをマップする必要があります。

ワークスペースのマッピングが混在する理由

ワークスペースを手動で作成せずにバージョン コントロールにファイルを追加すると、既定のワークスペースを手動で作成して、指定したサーバー フォルダーに元のフォルダーをマップしたことになります。 同様に、ワークスペースを手動で作成せずにファイルを取得すると、指定したサーバー フォルダーとローカル フォルダー間のマッピングを既定のワークスペースで作成したことになります。

次の図は、ユーザーが Solution1 をバージョン コントロールに追加し、このソリューションの保存先としてサーバー フォルダーを指定したところを示しています。 このユーザーはソリューションを追加することで、追加するソリューションのローカル フォルダーとサーバー フォルダー間のマッピングを作成しています。 このマッピングは、ユーザーの既定のワークスペース (ユーザーのコンピューターの名前が付けられています) に関連付けられています。

その後で、ユーザーは、他のチーム メンバーがバージョン コントロールに追加した別のプロジェクトからファイルを取得します。 最初のユーザーがファイルのコピー先であるローカル フォルダーを指定すると、指定したローカル フォルダーとサーバー フォルダーとの間にマッピングが作成されます。 このマッピングは、ユーザーの既定のワークスペースにも関連付けられます。

その結果、ワークスペースのマッピングが混在し、矛盾が生じます。 問題を解決する最適な方法は、マッピングを削除して、このトピックで前述した手順に従って一貫性のあるマッピング セットを作成することです。

ローカル フォルダーの混在によるマッピング

ローカル フォルダーの割り当ての組み合わせ

  1. ユーザーがファイルを追加するときに追加元となるローカル フォルダー。

  2. ユーザーが Get 操作を実行するときにファイルのコピー先となるローカル フォルダー。

参照

処理手順

バージョン管理へのファイルの追加

チーム プロジェクトのソースの取得

その他の技術情報

バージョン管理の使用

履歴の変更

日付

履歴

理由

2010 年 8 月

複雑なワークスペースとトラブルシューティングに関する情報を追加しました。

情報の拡充