obliterate コマンドは、パスパターンに一致するファイルのあらゆるバージョンについて、その基盤となるブロブストレージを、すべてのブランチとコミットを跨いで完全に削除します。この操作は 破壊的かつ元に戻すことができません。
背景、glob 構文、および基盤モデルについては、Obliterate ガイド を参照してください。
要件:
- 組織管理者 である必要があります。
- Obliterate は Git 同期リポジトリではサポートされていません。
preview
何が obliterate されるかを表示します。状態は変更されません。<glob> はリポジトリのルートに固定されたパスパターンです(例: '/assets/*.psd')。シェルによって展開されないよう、パターンはクォートで囲んでください。この引数は繰り返し可能です — 複数の glob を渡すことで、それらを組み合わせた obliteration を 1 回の呼び出しで計画できます。
--json は、プレビューレスポンス全体を含む単一の JSON ドキュメントを stdout に出力します。このモードではバナーや警告は抑制され、警告はドキュメントの warning 文字列フィールドに移動します。
人間向けのビューでは、見出しの件数、リクレイム見積もり、およびバイト数の降順でソートされた削除可能/削除されないパスの上位 20 件が表示されます。完全なリストがそれより長い場合、末尾に ... and N more (use --json for the full list) の行が表示されます。複数の glob が渡された場合、glob ごとのブロックがそれぞれの glob が一致したファイル数/バージョン数/合計バイト数を個別に表示します。
例:
execute
一致するブロブを完全に obliterate します。<glob> は preview と同じパスパターンで、繰り返し可能です。
--yes は破壊的操作の確認プロンプトをスキップします(スクリプト用)。これを指定しない場合、プロンプトでリポジトリ名または ID を入力して確認する必要があります。
--json は人間向けのバナーの代わりに単一の JSON ドキュメントを出力します。--yes が必須です — インタラクティブなプロンプトは JSON ストリームを破壊してしまうためです。
--nowait はジョブをキューに入れ、ポーリングせずに即座に終了します。その後、dv obliterate status <job_id> を使用してください。
デフォルトでは、execute は job_id を返し、ステータスエンドポイントを 3 秒ごとに最大 18 秒間 ポーリングします。この上限は固定です — ポーリングをスキップしたい場合は --nowait を使用するか、長時間のジョブでは後から status で追跡してください。
終了コード:
例:
status
以前にキューに入れた obliterate ジョブの状態を表示します。<job_id> は dv obliterate execute によって返される id です(例: dv.obliterate.593d2b8a8dbf47559bcc73c8bcf54f41)。
出力には全体のステータス(queued、in_progress、succeeded、failed、または archived)、ファイルごとの件数(pending / done / failed)、開始時刻、および — 終了状態の場合 — 終了時刻が含まれます。failed の場合は、失敗ごとに簡潔なエラーメッセージが付いた最初の 20 件のエラーが含まれます。archived は、ジョブがキューから期限切れになったが、その件数は依然として確認可能であることを意味します。
404 は、このリポジトリにその id の obliterate ジョブがないことを意味します。
例:
注意事項
- サーバーは glob 解決に 60 秒のタイムバジェットを適用します。glob が一致するファイルが多すぎる場合、呼び出しはエラーで拒否されます — パターンを絞り込み、複数の実行に分割してください。
- 実際の削除は呼び出しが戻った後にバックグラウンドで実行されます。これが
executeがすぐに戻る理由であり、進捗が status エンドポイント経由で追跡される理由です。 - 共有(グループ化された)ストレージ内のファイルは個別に obliterate することはできず、レスポンスではスキップされたと報告されます。

