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

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

Visual Studio 2019 | Visual Studio 2022

tf destroy コマンドを使用して、Team Foundation バージョン管理 (TFVC) からバージョン管理されたファイルを破棄または完全に削除します。

Note

Azure Devops 内の TFVC リポジトリは、作成後に削除することはできません。 このコマンド tf destroy は、バージョン管理されたファイルまたはフォルダーを破棄または完全に削除するだけで、TFVC リポジトリは削除しません。 メッセージは削除されても、オプションの一覧には引き続き表示されます。

場合によっては、バージョン管理システムをクリーンアップする必要があります。 たとえば、一部のファイルがコンピューター ウイルスに感染している場合は、バージョン管理から完全に削除する必要があります。 まだ必要なファイルは破棄しないでください。 破棄アクションを元に戻すことはできません。

/keephistory オプションを指定せずに tf destroy を実行する前に、まず破棄するファイルを削除します。 詳細については、バージョン管理からファイルとフォルダーを削除する方法に関する記事を参照してください。

ファイルを削除したら、TFVC ウェアハウスを同期できます。 しない場合、ウェアハウスが破棄された項目と同期されません。

前提条件

destroy コマンドを使用するには、Team Foundation 管理者セキュリティ グループに所属している必要があります。 詳細については、「既定の TFVC アクセス許可」を参照してください。

構文

tf destroy [/keephistory] <itemspec1>[;<versionspec>][<itemspec2>...<itemspecN>] 
[/stopat:<versionspec>] [/preview] [/startcleanup] [/noprompt] [/silent] [/login:username,[password]] [/collection:TeamProjectCollectionUrl]]

パラメーター

引数

Argument

説明

<itemspec1> [<itemspec2>...<itemspecN>]

破棄するファイルまたはフォルダーのサーバー パスを指定します。 複数の itemspec 値を使用して、複数の項目を削除します。 たとえば、「 tf destroy $/TeamProject1 $/teamProject2 $/TeamProject3 」のように入力します。

ローカル パスはサポートされていません。

<versionspec>

/keephistory/stopat オプションの C58 などのバージョンを指定します。 使用できる値は、datetip、または特定の変更セットです。 TFVC がバージョン指定を解析してそのスコープ内の項目を判別する方法の詳細については、「Team Foundation バージョン管理コマンドの使用」を参照してください。

<username>

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

TeamProjectCollectionUrl

破棄するファイルを含むプロジェクト コレクションの URL (例: http://myserver:8080/tfs/DefaultCollection)。

Options

オプション

説明

/keephistory

省略可能。 ファイルのコンテンツが破棄されても履歴は保持するように指定します。 このオプションを、/preview オプションと一緒に指定することはできません。

/stopat

省略可能。 /keephistory も指定されている場合にのみ使用できます。

ファイルのファイル バージョンと、その後に続くファイル (履歴を保持するファイル) を指定します。

/stopat の既定のバージョンは、項目のチェックインされた最新バージョンを表す tip (T) です。

ラベルまたはワークスペースの versionspec 値を使用して、/stopat オプションの項目を指定することはできません。

/preview

コマンド プロンプト ウィンドウで破棄されるファイルを表示します。 プレビュー モードで tf destroy を実行しても、ファイルは実際には破棄されません。

注意

コマンド プロンプト ウィンドウのテキストには、破棄されるであろう各ファイルに [破棄済み] という単語が表示されます。 ただし、/preview オプションを使用した場合、ファイルは実際には破棄されません。

/startcleanup

削除が完了した直後に TFVC メタデータ クリーンアップ プロセスが強制的に開始されます。 ユーザーが /startcleanup を指定していない場合、Azure DevOps Server が参照しなくなったすべてのファイルが、データベース メンテナンスによってクリーンアップされる際に、破棄されたメタデータ クリーンアップ プロセスが行われます。 既定では、クリーンアップは 5 日ごとに実行されるようにスケジュールされています。 TFVC メタデータがクリーンアップされてから 7 日後に、別のクリーンアップ プロセスによってコンテンツが削除されます。 既定では、このコンテンツ クリーンアップ プロセスは 1 日 1 回実行されます。

/noprompt または /i

ファイルの破棄が非対話型となるよう指定します。 /i/noprompt の別名です。

/silent

ファイルまたはフォルダーを破棄するときに、出力がコマンド プロンプト ウィンドウに書き込まれないように指定します。

/login

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

/collection

プロジェクト コレクションを指定します。

解説

tf destroy を使用してバージョン管理ファイルを破棄すると、TFVC のアプリケーション層は破棄要求を受け取り、Team Foundation 管理者セキュリティ グループのメンバーであるかどうかを確認します。 メンバーでない場合は、操作を実行するために必要なアクセス許可がないことを示すエラーメッセージ ダイアログ ボックスが表示されます。

システムがアクセス許可を検証した後、destroy コマンドを実行します。 このコマンドは、すべてのファイル参照、シェルブセット、および保留中の変更を削除します。 完全な削除であるファイルの実際の破棄は、次回、Azure DevOps Server が参照しなくなったコンテンツがクリーンアップされるときに行われます。 tf destroy の実行直後にファイルをクリーンアップする /startcleanup オプションを指定することもできます。

/i/preview を指定せずに tf destroy を実行すると、各 filespec 値に対してコンソールの [はい] または [いいえ] プロンプトが表示されます。 そうでない場合は、[すべてはい] に指定できます。

  • /keephistory を指定しない場合は、保留中の変更が存在する場合に警告する対話型テキストが表示されます。 対話型テキストは、変更に関する詳細情報が必要な場合に /preview を指します。

  • /keephistory を指定した場合は、[はい][いいえ]、または [すべてはい] のテキストに対してもメッセージが表示されます。 [はい] または [すべてはい] を選択すると、破棄プロセスが開始され、破棄された項目に対するサーバー パスがコマンド プロンプト ウィンドウに表示されます。

Destroyed: <serverItem1>
Destroyed: <serverItem2>
Destroyed: ...

versionspec 値を tip として指定した場合、コマンド プロンプト ウィンドウに表示されるサーバー パスに削除 ID が含まれます。 たとえば、Destroyed: $/Test1/MyProject;X123 がコマンド プロンプト ウィンドウに表示される場合があります。

/preview オプションを使用すると、ファイルは破棄されませんが、コマンドライン テキストには破棄されるであろうファイルが表示されます。 たとえば、コマンドラインで「tf destroy /preview $/Test1/MyProject/MyProject/Program.cs」と入力すると、コマンド ウィンドウに次のテキストが表示されます。

Destroyed: $/Test1/MyProject/MyProject/Program.cs

ただし、/preview オプションを使用したため、ファイルは実際には破棄されません。

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

/keephistory が他のバージョン管理操作に及ぼす影響

破棄されたファイルの履歴を保持する /keephistory オプションを指定した場合、ファイルは次の TFVC 操作によって破棄済みとして処理されます。

  • コンテンツの変更。 編集や分岐など、破棄されたファイルのコンテンツを変更しようとすると、コンテンツが破棄されたことを示すエラー メッセージが表示されます。

  • 分岐、マージ、またはアンシェルブ。 破棄された項目を分岐、マージ、またはアンシェルブしようとすると、アイテムのコンテンツが破棄されたことを示すエラー メッセージが表示されます。

以前に削除された項目を破棄する

項目が既に削除されている場合は、削除 ID が添付されるため、ファイル名が変更されます。

コード検索では tf destroy 通知が処理されないため、TFVC リポジトリに tf destroy を使用しても、検索インデックスからファイルが自動的に削除されることはありません。 その結果、これらのファイルはコード検索結果に表示されます。 これらのゴースト ファイルのシナリオを回避するには、tf destroy 操作の前にファイルを削除します。

次の例では、ファイル a.cs を完全に削除します。

tf destroy $/proj/pi/a.cs

次の例では、フォルダー aFolder を削除します。

tf delete $/MyTeamProject/aFolder

削除された項目 aFolder を破棄するには、コマンド ラインに以下を入力します。

tf destroy $/MyTeamProject/aFolder;x123

ここで x123 は削除 ID です。