作業の中断とシェルブセットの管理

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

さまざまな理由で、進行中の作業の一部またはすべてを中止する必要が生じることがあります。 Team Foundation バージョン管理 (TFVC) のシェルブセットは、以下を目的として作業を停止する場合に役立ちます。

  • 割り込み: チェックインの準備ができていない保留中の変更がありますが、別のタスクを実行する必要があります。
  • 共同作業: チェックインの準備ができていない保留中の変更がありますが、別のチーム メンバーと保留中の変更を共有する必要があります。
  • コード レビュー: 別のチーム メンバーに保留中の変更のレビューを依頼します。 コード レビューの詳細については、「 Day in the life of a devops developer: Write new code for a user storyを参照してください。
  • プライベート ビルド: 変更をチェックインする前に、自動ビルド システムを使用してコードをビルドしてテストします。
  • バックアップ: 完了はできませんが、バックアップ コピーを作成したい進行中の作業があります。 そのバックアップ コピーをサーバーに保存し、他のチーム メンバーが使用できるようにしたいと考えています。
  • ハンドオフ: 別のチーム メンバーに渡す必要のある進行中の作業があります。

このようなシナリオでは、保留中の変更をサーバーのシェルブセットに移動して、ワークスペースをクリーンアップできます。 シェルブセットを使用して、シェルブする前のポリシーの評価時に、ファイル リビジョン、コメント、関連する作業項目の一覧、チェックイン メモを保存します。

前提条件

プロジェクトの共同作成者の 1 人である必要があります。 詳細については、「既定の TFVC アクセス許可」を参照してください。

Note

Visual Studio の [担当作業] および [コード レビュー] 機能は、次のエディションで利用できます。

  • Visual Studio 2022: Visual Studio Community、Visual Studio Professional、Visual Studio Enterprise
  • Visual Studio 2019: Visual Studio Professional、Visual Studio Enterprise

[担当作業] ページから作業を中断して再開する

チーム エクスプローラーの [担当作業] ページから、ファイルの変更と関連する作業項目を保存および復元できます。 開いているウィンドウの位置やブレークポイントなどの重要な項目を復元することもできます。

  1. Visual Studio で、[表示]>[チーム エクスプローラー] を選択します。

  2. [チーム エクスプローラー] で、[ホーム] を選択し、[担当作業] を選択します。

  3. [担当作業] ページで、[保留] を展開し、中断した作業の説明を入力して、[保留] を選択します。

    チーム エクスプローラーの [担当作業] ページのスクリーンショット。[処理中の作業] の [保留] セクションで、説明と [保留] ボタンが強調表示されています。

  4. 準備ができたら、作業を再開できます。 [担当作業] ページの [中断されている作業] で、作業の説明を選択し、[再開する] を選択します。

    チーム エクスプローラーの [担当作業] ページのスクリーンショット。[中断されている作業] で、作業の説明が強調表示されています。ショートカット メニューの [再開する] が強調表示されています。

変更をシェルブする

ヒント

ソリューション エクスプローラーまたはソース管理エクスプローラーのいずれかで、作業しているファイルの特定のサブセットをシェルブできます。 ファイルを選択し、コンテキスト メニューを開き、[保留中の変更をシェルブ] を選択します。 [保留中の変更] ページが表示され、選択したファイルのみをシェルブできます。

  1. [チーム エクスプローラー] で、[ホーム] を選択し、[保留中の変更] を選択します。

  2. [保留中の変更] ページで、[含まれる変更] セクションにシェルブする変更が表示されていることを確認します。 [含まれる変更][除外される変更] の間でファイルをドラッグできます。 キーボードから項目のコンテキスト メニューを開いて、[含む] または [含まない] を選択することもできます。

  3. [シェルブ] を展開します。

  4. シェルブセットの名前を入力します。

    チーム エクスプローラーの [保留中の変更] ページのスクリーンショット。[シェルブ] セクションで、作業を説明する名前が強調表示されています。

  5. (省略可能) 次のいずれかのオプションを選択します。

    • 保留中の変更をローカルに保持する。 既定では、このオプションが選択されています。 そのため、保留中の変更はワークスペースから削除されません。 コメントと関連する作業項目の一覧も削除されません。 別のタスクを行うためにワークスペースをクリーンアップする場合は、このチェックボックスをオフにします。

    • シェルブする前にポリシーおよびメモを評価する。 このオプションを選択すると、シェルブセットが作成される前にすべてのチェックイン ポリシーが評価されます。 チェックイン ポリシーの詳細については、「品質ゲートの設定と適用」を参照してください。

  6. [シェルブ] を選択します。

シェルブセットを検索する

  1. [チーム エクスプローラー] で、[ホーム] を選択し、[保留中の変更] を選択します。

  2. [アクション] を展開し、[シェルブセットの検索] を選択します。

  3. [シェルブセットの検索] ページで、検索ボックスにプロジェクト チーム メンバーの名前または別名を入力して、Enter キーを押します。

    チーム エクスプローラーの [シェルブセットの検索] ページのスクリーンショット。検索ボックスには、チーム メンバーの名前が含まれています。[結果] には、2 つのシェルブセットが表示されています。

    ヒント

    所有者の名前がわからない場合は、「*」を入力すると全ユーザーのシェルブセットを表示できます。

  4. シェルブセットの一覧が [結果] に表示されます。 結果をフィルター処理して一覧のサイズを小さくすることができます。

シェルブセットを表示して使用する

シェルブセットを検索する」で説明されているように [シェルブセットの検索] ページにシェルブセットの一覧が表示されたら、シェルブセットをダブルクリックして表示します。 [シェルブセットの詳細] ページが表示されます。

チーム エクスプローラーの [シェルブセットの詳細] ページのスクリーンショット。シェルブセット名、コメント、作業項目、変更が表示されます。

  • リスト ビューとツリー ビューを切り替えるには、[ビュー オプション] メニューを使用します。

  • ファイルの変更に関する詳細を表示するには、コンテキスト メニューを開き、[開く][履歴の表示]、または比較オプションの 1 つを選択します。

  • ワークスペースにシェルブセット内の変更を取得する場合は、[変更のアンシェルブ] をクリックします。

    1. アンシェルブしないファイルの変更がある場合は、ファイルのコンテキスト メニューを開き、[含まない] を選択します。

    2. シェルブセットを削除する場合は、[Preserve shelveset on server] (シェルブセットをサーバーに保持する) チェックボックスをオフにします。

    3. シェルブセットに保存されている作業項目一覧とチェックイン メモを復元しない場合は、[作業項目およびチェックイン メモの復元] チェック ボックスをオフにします。

    4. [アンシェルブ] を選択します。 シェルブセット内の変更とワークスペース内のファイル バージョンとの間に競合がある場合、競合の解決を求めるメッセージが表示されます。

  • シェルブセットを削除するには、[シェルブセットの削除] を選択します。

    警告

    シェルブセットを削除する前に、必要な作業がシェルブセットに保存されていないことを確認します。 削除されたシェルブセットを復元する方法はありません。

コマンド プロンプトから作業する

ヒント

  • 変更セットとは異なり、シェルブセットはバージョンなしのエンティティです。 シェルブセット内の項目をアンシェルブし、ファイルをいくつか編集してから、シェルブセットを再シェルブできます。 ただし、後で比較するために項目の新しいバージョンは作成されません。 また、誰が、いつ、どのような方法で項目を改訂したかの記録も保持されません。 元のシェルブセットは、完全に置き換えられます。
  • 競合が原因で、中断した作業を再開できない場合があります。 競合が発生した場合は、「Team Foundation バージョン管理の競合の解決」を参照してください。