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

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

Visual Studio 2019 |Visual Studio 2022

さまざまな理由から、進行中の作業の一部またはすべてを確保する必要がある場合があります。 Team Foundation バージョン管理 (TFVC) のシェルブセットは、次の場合に作業を停止する場合に便利です。

  • 中断: 保留中の変更があり、チェックインする準備ができていませんが、別のタスクで作業する必要があります。
  • コラボレーション: 保留中の変更があり、チェックインする準備ができていませんが、他のチーム メンバーと共有する必要があります。
  • コード レビュー: 保留中の変更を別のチーム メンバーが確認する必要があります。 コード レビューの詳細については、「 Devops 開発者の一生の日: ユーザー ストーリーの新しいコードを記述する」を参照してください。
  • プライベート ビルド: 変更をチェックインする前に、自動ビルド システムを使用してコードをビルドしてテストする必要があります。
  • バックアップ: 完了できないが、バックアップ コピーを作成する作業が進行中です。 バックアップ コピーをサーバーに保存し、他のチーム メンバーが使用できるようにする必要があります。
  • ハンドオフ: 別のチーム メンバーに引き渡す作業が進行中です。

これらのシナリオやその他のシナリオでは、 保留中の変更 をサーバー上のシェルブセットに移動し、 ワークスペースをクリーンアップできます。 シェルブセットは、シェルブする前にポリシーを評価するときに、ファイルのリビジョン、コメント、関連する作業項目の一覧、およびチェックイン ノートを保存します。

前提条件

プロジェクトの 共同作成者 の 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. シェルブセットの名前を入力します。

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

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

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

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

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

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

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

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

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

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

    ヒント

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

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

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

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

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

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

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

  • シェルブセット内の変更をワークスペースに取得するには、[ 変更の保留解除] を選択します。

    1. 削除を解除しないファイルの変更がある場合は、ファイルのコンテキスト メニューを開き、[除外] を選択 します

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

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

    4. [ Unshelve]\(削除解除\) を選択します。 シェルブセットの変更とワークスペース内のファイル バージョンの間に競合がある場合は、 解決するように求められます。

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

    警告

    削除する前に、シェルブセットに格納されている作業は不要であることを確認してください。 削除されたシェルブセットを回復する方法はありません。

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

ヒント

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