Unshelve コマンド (Team Foundation バージョン管理)

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

Visual Studio 2019 | Visual Studio 2022

Team Foundation バージョン管理 (TFVC) の unshelve コマンドは、シェルブされたファイル リビジョン、チェックイン メモ、コメント、作業項目の関連付けを現在のワークスペースに復元します。 unshelve コマンドを使用して、サーバーから既存のシェルブセットを削除することもできます。

前提条件

  • unshelve コマンドを使用するには、次のようにします。
    • 読み取りアクセス許可が [許可] に設定されている必要があります。
    • シェルブセット内の項目に対するチェックアウト アクセス許可が [許可] に設定されている必要があります。
  • シェルブセットを削除するには、その所有者であるか、シェルブされた変更の管理グローバル アクセス許可が [許可] に設定されている必要があります。

詳細については、「既定の TFVC アクセス許可」を参照してください。

構文

tf unshelve [/move] [<shelveset-name>[;<owner-name>]] <item-spec> 
[/recursive] [/noprompt][/login:<username>,[<password>]]

パラメーター

以降のセクションでは、unshelve コマンドの引数とオプションについて説明します。

引数

Argument

説明

<shelveset-name>

復元するシェルブセットの名前を指定します。

<owner-name>

シェルブセット所有者のユーザー名を指定します。

<item-spec>

現在のワークスペースにアンシェルブするファイルまたはフォルダーのリビジョンを識別します。 このパラメーターが含まれていない場合、既定では、指定されたシェルブセット内のすべての保留中の変更がアンシェルブされます。 サーバー パスは許可されません。

TFVC が <item-spec> 値を解析してスコープ内の項目を判別する方法の詳細については、「Team Foundation バージョン管理コマンドの使用」の「オプションを使用してコマンドの機能を変更する」を参照してください。

注意

複数の <item-spec> 引数を指定できます。

<username>

/login オプションに値を指定します。 この値は、DOMAIN\<username> または <username> として指定できます。

<password>

/login オプションに値を指定します。

Options

オプション

説明

/move

シェルブセットを正常にアンシェルブしたら、指定したシェルブセットを Azure DevOps サーバーから削除します。 このオプションを <item-spec> 値と組み合わせることはできません。

shelve コマンドを使用してシェルブセットを削除することもできます。

/recursive

<item-spec> 値を再帰的に照合する必要があることを指定します。

/noprompt

TFVC が入力を求めないように指定します。

/login

Azure DevOps でユーザーを認証するためのユーザー名とパスワードを指定します。

解説

tf コマンド ライン ユーティリティの unshelve コマンドは、すべてのシェルブされたファイル リビジョン、またはすべてのシェルブされたファイル リビジョンの定義されたサブセットを Azure DevOps サーバーから取得します。 その後、このコマンドは現在のワークスペースにリビジョンを保存します。

項目をアンシェルブするには、宛先ワークスペースで項目に対して保留中のリビジョンが存在しない必要があります。

シェルブセットをアンシェルブすると、そのリビジョンがワークスペースで既に保留中の変更と競合しない限り、TFVC によってシェルブされた各リビジョンが保留中の変更として宛先ワークスペースに復元されます。 アンシェルブ プロセス中に起こることの詳細については、「シェルブセットの操作」を参照してください。

unshelve コマンドを使用すると、シェルブセットからワークスペースに個々のファイル リビジョンを復元できます。 unshelve コマンドを実行した後、get コマンドを実行して、シェルブセットの作成以降にサーバーにチェックインされたすべての変更を調整します。

tf コマンド ライン ユーティリティの使用方法について詳しくは、「Team Foundation バージョン管理コマンドの使用」を参照してください。

シェルブされた変更をリサイクルする

継続的なリビジョンを作成するために、シェルブされたリビジョンを現在のワークスペースに統合する場合は、目的のシェルブセットをアンシェルブします。 ベスト プラクティスとして、アンシェルブ後にバージョン管理されたファイルの最新バージョンも取得します。

別のユーザーのコードをアンシェルブしてレビューする

また、別のユーザーのワークスペースからの変更をレビューするために、シェルブセットをアンシェルブすることもできます。 この理由でアンシェルブするには、次の 2 つのオプションがあります。

  • 1 つ目のオプションは、シェルブセットが作成されてから、シェルブされた項目と関連項目が変更されていない場合、またはわずかしか変更された場合に適しています。 この場合は、シェルブセット所有者のワークスペースからすべての関連項目の基本バージョンを取得できます。 このオプションを使用するには、tf get \* /version;W<workspace-name> コマンドのバリエーションを実行します。ここで、<workspace-name> は、他のユーザーがシェルブセットを作成したワークスペースの名前です。

  • 2 番目のオプションは、シェルブセットが作成されてから、かなりの時間が経過している場合、またはワークスペースに複数のリビジョンが含まれている場合に適しています。 この場合、シェルブセットが作成された日時の時点で、サーバーからすべての関連項目のバージョンを取得できます。

シェルブセット名にユーザー名を追加すると、別のユーザーのシェルブされた変更をアンシェルブできます。 ただし、別のユーザーによって作成されたシェルブセットを Azure DevOps サーバーから削除できるのは、AdminShelvedChangesets アクセス許可を持っている場合のみです。

宛先ワークスペースで保留中の変更がある項目をアンシェルブしようとすると、TFVC で項目間の相違点がマージされず、ワークスペースにリビジョンが取り込まれません。

シェルブセットは、tf shelve /delete を使用して削除できます。 詳細については、「Shelve コマンド」を参照してください。 シェルブセット全体をアンシェルブした後にシェルブセットを自動的に削除するには、tf unshelve /move を使用します。

次の例では、[アンシェルブ] ダイアログ ボックスを開き、現在のワークスペースでシェルブセットを見つけてアンシェルブできるようにします。 このダイアログ ボックスには、アンシェルブ操作の終了時にシェルブセットを削除するオプションもあります。

c:\>tf unshelve

次の例では、シェルブセット buddytest_1256 を現在のワークスペースにアンシェルブし、Azure DevOps Server から削除します。

c:\>tf unshelve /move buddytest_1256