Helix Core P4コマンドリファレンス (2019.1)

p4 obliterate

ファイルおよびその履歴をディポから消去します。

構文

p4 [g-opts] obliterate [-y -A -b -a -h] FileSpec[revSpec]

説明

p4 obliterate は、Helixサーバ管理者が使用し、ファイルをディポから完全に消去します。

警告

このコマンドはファイルデータのサーバ内のコピーを削除し、完全にリカバリできなくします。

慎重に使用してください。 次のコマンドはファイルデータを完全に削除します。

ヒント

p4 delete コマンドの使用を検討してください。このコマンドは最新リビジョンを削除扱いにするのみで、以前のリビジョンをディポに残します。

ファイルはラベルによるファイル参照やhaveリストなどを含む、すべての関連メタデータとともにPerforceサービスから消去されます。 p4 obliterateが正常終了すると、その影響を受けたファイルは、サービスにとって最初から存在していなかったような状態になります。 ユーザワークスペース内のファイルはそのままですが、もはやHelixサーバによる管理下のファイルとは認識されません。

p4 obliterateは少なくとも1つのファイルパターンを引数として必要とします。 実際にファイルの完全消去を実行するには、-yオプションが必要です。これが付いていなければ、p4 obliterateは実際にファイルの完全消去は実行せずに、単にそれを実行したらどうなるかを知らせるのみです。

特定のリビジョンを指定すれば(例えばp4 obliterate file#3)、そのリビジョンのファイルのみが完全消去されます。 リビジョン範囲を指定すれば(例えばp4 obliterate file#3,5)、その範囲のリビジョンのみが完全消去されます。

注意

p4 obliterate myfileコマンドを実行しても、ファイル(アーカイブファイルまたはメタデータファイル)の保留が解除されることはありません。 完全消去されたファイルを保留解除しようとすると、エラーが発生します。 ファイルの内容を復元するには、ファイルを出力します。 保留を解消するには、シェルフを削除します。

p4 obliterateは、ファイル仕様を伴う場合、ファイルの保留を完全消去しません。

オプション

-y filespec

ファイルの完全消去を実行します。 このオプションが付いていなければ、p4 obliterateは単に、実行したらどうなるかを知らせるのみです。

-A

アーカイブ対象としてマーキングされたリビジョンを完全消去します。 デフォルトでは、アーカイブされたリビジョンはスキップされます。

-b

引数の範囲にあるファイルを、ブランチされたファイル、および最初のリビジョンかつ最新リビジョンであるファイルに限定します。 このオプションは、古いブランチ(1つのリビジョンのみ存在)を削除する一方で、ブランチ操作後に変更されたファイルを保存しておくのに便利です。 -aオプションと-bオプションを併用することにより、obliterate -bのパフォーマンスを大幅に改善することができます。

-a

(リソースを消費しがちな)db.archmapの検索をスキップし、ファイルをサーバから消去せず、メタデータのみを消去します。 ファイルはディスクから消去されませんが、-a-bを併用することにより、遅延コピーとしてのみ存在していると認識されているブランチ済みファイルの完全消去を高速化することができます。

-h

削除対象の一致レコードを探す際に、db.haveの検索をスキップします。 これらのファイルを示すクライアントワークスペースが次回同期されたときに、ワークスペース内にあるそのようなファイルも、ワークスペースから消去されます。 (ビルドマシン上のクライアントワークスペースなどにおいては、多くの場合、このような動作が求められます。)

g-opts

詳細については、「グローバルオプション」を参照してください。

使用上の留意点

ファイル引数にリビジョン指定子を使えるか? ファイル引数にリビジョン範囲を使えるか? 最低限必要なアクセスレベル

使用可

使用可

admin

  • p4 obliterateは、必要なくなったファイルを消去してディスク容量を再生するため、または間違った場所にファイル階層を生成するといったユーザによるミスを帳消しにするための1つの方法です。 オペレーティングシステムのコマンド(eraserm、またはこれに類似のコマンド)を使用して手動でHelixサーバルートからファイルを削除しないでください。
  • より良いディスクスペースの節約方法は、アクセス頻度の低いファイルを低パフォーマンスの(または取り外し可能な)記憶領域に移動させることです。 ファイルを完全に削除するのではなく、p4 archiveコマンドとp4 restoreコマンドをアーカイブディポと組み合わせて使用することをお勧めします(詳しくは、「アーカイブディポ」を参照)。 アーカイブディポにはファイルの履歴が保存され、すべてのユーザが利用できます。また、ファイルの中身をオフラインかニアラインの記憶領域に移動させることができます。
  • ファイルを完全消去すると、ユーザコマンドの動作が変わってくることがあります。 完全消去されたファイルに同期しても、ファイルはもうクライアントワークスペースには組み込まれていないため、クライアントワークスペースからは削除されません。 完全消去されたファイルリビジョンに同期すると、ファイルが存在しないと報告されるか(すべてのリビジョンが完全消去されていた場合)、またはそのファイルの完全消去されていないリビジョンのうちの最新リビジョンが呼び出されます。
  • ファイルをリビジョン範囲で完全消去すると、完全消去された範囲のリビジョン番号が“スキップ”され、スクリプトの動作が変わってくることがあります。 例えば、リビジョン#2および#3を完全消去した後のp4 filelogの出力が次のようになるとします。

    ... #4 change 1276 edit on 2011/04/18 by user@dev1 (binary) 'Fixed'
    ... #1 change 1231 add on 2011/04/12 by user@dev1 (binary) 'First try'

    この場合には、出力の1行目にある#4を元に、p4 filelogの出力には4つのチェンジの記述があると推量するようなスクリプトでは問題が発生します。

p4 obliterate dir/...

ファイルの完全消去は行わず、-yオプションを付けたときに完全消去されるファイルをリスト表示します。

この場合には、dir以下のディレクトリのすべてのファイルが-yオプションを付けたときの消去の対象になります。

p4 obliterate -y file

fileをディポから完全消去します。 fileのあらゆるリビジョンに関する履歴およびメタデータのすべてが消去されます。

p4 obliterate -y file#3

fileの3番目のリビジョンのみを完全消去します。

#3最新リビジョンであれば、最新リビジョンは#2に変わり、次に生成されるリビジョンは#3になります。

#3が最新リビジョンでなければ、最新のリビジョン番号は変わりません。

p4 obliterate -y file#3,5

fileのリビジョン#3、4、5を完全消去します。

#5が最新リビジョンであれば、最新リビジョンは#2に変わり、次に生成されるリビジョンは#3になります。

#5が最新リビジョンでなければ、最新のリビジョン番号は変わりません。

関連コマンド

最新リビジョンのファイルを削除扱いにするが、そのままディポに残す。 これは、通常のファイル削除の方法です。

p4 delete

ファイルを完全消去する代わりに、一部のリビジョンをアーカイブディポにアーカイブすることによりローカルディポの空き容量を節約できる。 これらのファイルの変更履歴が保存される。

p4 archive

アーカイブされたリビジョンをアーカイブディポからリストアする。 (完全消去されたファイルはリストアできないが、アーカイブされたファイルはリストア可能。)

p4 restore