方法 : 保留中の変更をシェルブおよびアンシェルブする
更新 : 2007 年 11 月
シェルブを使用すると、ワークスペースの保留中の変更作業を中断して、優先度の高いタスクを実行したり、またはコード レビューのために別のユーザーとコードを共有できます。
最新バージョンの取得操作を実行し、ワークスペースを最新のサーバー バージョンと同期させます。次に、アプリケーションをビルドして、シェルブまたはチェックインの前に必ずコンパイルします。この方法で、ワークスペースの外部で行われた変更をバージョン管理されたファイルに組み込むことができます。
必要なアクセス許可
保留中の変更をアンシェルブするには、[読み取り] および [チェックアウト] のアクセス許可が [許可] に設定されている必要があります。シェルブ タスクを実行するために必要なアクセス許可はありません。詳細については、「Team Foundation Server のアクセス許可」を参照してください。
ソース管理エクスプローラからフォルダとファイルをシェルブするには
ソース管理エクスプローラで、ファイルまたはフォルダを右クリックし、[保留中の変更をシェルブ] をクリックします。
[シェルブ - ソース ファイル] ダイアログ ボックスの [シェルブセット名] ボックスにシェルブセット名を「shelvetest」のように入力します。
[シェルブ - ソース ファイル] ダイアログ ボックスが開き、次の 2 つのオプションが表示されます。
[保留中の変更をローカルに保存する]
このオプションの既定値はオンです。このオプションがオンになっていると、ローカル ワークスペースのファイルやフォルダに加えた変更は保持されます。
[シェルブする前に、ポリシーおよびチェックイン メモを評価]
このオプションがオンになっていると、シェルブセットが作成される前にすべてのチェックイン ポリシーが評価されます。詳細については、「チェックイン ポリシーおよびチェックイン メモの操作」を参照してください。
[コメント] ボックスに「Testing my shelveset」と入力し、[シェルブ] をクリックします。
ファイルとフォルダがバージョン管理サーバーにコピーされ、他のチーム メンバがアンシェルブを実行できるようになります。
ソリューション エクスプローラからフォルダとファイルをシェルブするには
ソリューション エクスプローラで右クリックし、[保留中の変更をシェルブ] をクリックします。
[シェルブ - ソース ファイル] ダイアログ ボックスの [シェルブセット名] ボックスにシェルブセット名を「shelvetest」のように入力します。
[シェルブ - ソース ファイル] ダイアログ ボックスが開き、次の 2 つのオプションが表示されます。
[保留中の変更をローカルに保存する]
このオプションの既定値はオンです。このオプションがオンになっていると、ローカル ワークスペースのファイルやフォルダに加えた変更は保持されます。
[シェルブする前に、ポリシーおよびチェックイン メモを評価]
このオプションがオンになっていると、シェルブセットが作成される前にすべてのチェックイン ポリシーが評価されます。詳細については、「チェックイン ポリシーおよびチェックイン メモの操作」を参照してください。
[コメント] ボックスに「シェルブセットのテスト」と入力し、[シェルブ] をクリックします。
ファイルとフォルダがバージョン管理サーバーにコピーされ、他のチーム メンバがアンシェルブを実行できるようになります。
[保留中の変更] ウィンドウから保留中の変更をシェルブするには
Visual Studio 統合開発環境 (IDE: Integrated Development Environment) で、[表示] メニューをクリックし、[その他のウィンドウ] をクリックします。次に、(ウィンドウがまだ開いていない場合は) [保留中の変更] をクリックします。
[保留中の変更] ウィンドウで、[ソース ファイル] アイコンをクリックし、シェルブするファイルを選択します。
[作業項目] をクリックし、作業項目を追加または削除します。追加する各作業項目に対して、[チェックイン動作] 列から [解決] または [関連付け] を選択します。
[保留中の変更をローカルに保存する] チェック ボックスまたは [シェルブする前に、ポリシーおよびチェックイン メモを評価] チェック ボックスをオンまたはオフにします。
メモ : シェルブ操作は、選択するオプションによって、バージョン管理されたファイルのリビジョン、チェックイン メモ、および関連する作業項目の一覧をサーバーの外部の場所に移動またはコピーします。したがって、誤ってビルドを破壊するリスクを回避できます。
[シェルブ] をクリックします。
[シェルブ - ソース ファイル] ダイアログ ボックスの [シェルブセット名] ボックスに名前を入力します。
[コメント] ボックスに名前を入力し、[シェルブ] をクリックします。
保留中の変更をコマンド ラインからシェルブするには
[スタート] ボタンをクリックし、[すべてのプログラム] をポイントします。次に [Microsoft Visual Studio 2008] をポイントし、[Visual Studio Tools] をポイントして、[Visual Studio 2008 コマンド プロンプト] をクリックします。
「cd path」と入力します。ここで、path は、サーバーに各自のファイルのコピーを格納するために使うディレクトリの場所です (c:\projects など)。
「tf.exe shelve shelvename」を入力して、Enter キーを押します。
[シェルブ - ソース ファイル] ダイアログ ボックスが表示されます。
[シェルブ - ソース ファイル] ダイアログ ボックスが開き、次の 2 つのオプションが表示されます。
[保留中の変更をローカルに保存する]
このオプションの既定値はオンです。このオプションがオンになっていると、ローカル ワークスペースのファイルやフォルダに加えた変更は保持されます。
[シェルブする前に、ポリシーおよびチェックイン メモを評価]
このオプションがオンになっていると、シェルブセットが作成される前にすべてのチェックイン ポリシーが評価されます。詳細については、「チェックイン ポリシーおよびチェックイン メモの操作」を参照してください。
[シェルブ - ソース ファイル] ダイアログ ボックスで、シェルブするファイルやフォルダを選択し、[OK] をクリックしてシェルブ操作を完了します。
メモ : shelve コマンドの完全な構文については、「Shelve コマンド」を参照してください。
アンシェルブ
シェルブセットをアンシェルブする場合、Team Foundation は、ワークスペースで既に保留中の変更と競合しない限り、シェルブされた各リビジョンを対象のワークスペースに保留中の変更として復元します。アンシェルブ プロセスの詳細については、「バージョン管理シェルブセットの操作」を参照してください。
シェルブセットをアンシェルブする一般的な 2 つの理由は次のとおりです。
手動の操作を必要としないコード レビュー (またはワークスペース偽装)
シェルブされた保留中の変更を進行中の作業に統合
unshelve コマンドを使用すると、シェルブセットからワークスペースに個々のファイルのリビジョンを復元できます。ただし、アンシェルブによって、ワークスペースの基本バージョン (シェルブされたリビジョンが基にしているサーバー バージョン) にワークスペース全体を復元することはできません。アンシェルブした後に、次のいずれかの操作を実行して、コードの時系列の不整合を防止します。
保留中の変更のセットをアンシェルブするには
チーム エクスプローラで、[ファイル] メニューの [ソース管理] をポイントし、[保留中の変更をアンシェルブ] をクリックします。
[アンシェルブ] ダイアログ ボックスが表示されます。
[所有者名] ボックスで、シェルブセットの作成者の名前を入力し (例 : ADVENTUREWORKS\JuanGo または juango のみ)、[検索] をクリックします。
[結果] ペインで、ワークスペースにアンシェルブするシェルブセットを選択し、[詳細] をクリックします。
[シェルブセットの詳細] ダイアログ ボックスで、[シェルブセットをサーバーに保持する] チェック ボックスをオフにします (Team Foundation バージョン管理サーバーからシェルブセットを削除する場合)。
復元するシェルブセットに作業項目とチェックイン メモを関連付けない場合は、[作業項目およびチェックイン メモの復元] オプションをオフにすることもできます。
ワークスペースにアンシェルブするシェルブセットまたはシェルブセット項目を選択し、[アンシェルブ] をクリックします。
ファイルの 2 つのバージョンの解決可能な相違を自動的にマージし、競合を手動でマージできるようにする Get 操作とは異なり、アンシェルブ操作はマージをサポートしていません。コード レビューの開始時に、シェルブされた保留中の変更をワークスペースから削除することによって、ファイルへのコメントの追加などのレビュー担当者がシェルブセットに行う変更によって、アンシェルブ処理中に競合のマージが発生しないようにできます。
アンシェルブは、Unshelve コマンドを使用してコマンド ラインから実行することもできます。
参照
処理手順
方法 : ワークスペース内のすべての保留中の変更を表示および管理する