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

p4 obliterate

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

構文

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

説明

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

警告

p4 obliterate -yコマンドを実行すると、サーバ上でコピーされたファイルのデータが削除され、復元できなくなります。 ファイルはラベルによるファイル参照やhaveリストなどを含む、すべての関連メタデータとともにPerforceサービスから消去されます。 p4 obliterateコマンドが完了すると、消去されたファイル内のレコードがサービスから削除されます。 ユーザワークスペース内に存在するこれらのファイルのコピーはそのまま保存されますが、Helixサーバでは認識されなくなります。

ヒント

p4 deleteコマンドを使用することをお勧めします。このコマンドを実行すると、最新リビジョンに削除マークが付けられますが、以前のリビジョンはディポ内に残ったままになります。

ヒント

ファイルの内容を消去する場合は、バージョン2019.2で新しく追加された-pオプションを使用することをお勧めします。 例えば、2015年から2018年にかけてサブミットされたファイルの内容を完全に消去する場合は、以下のコマンドを使用します。
p4 obliterate -p -y file@2015/01/01,2019/01/01

ディレクトリの場合は、以下のコマンドを実行します。

p4 obliterate -p -y //depot/some/path/...@ 2015 /01/01, 2019 /01/01

p4 obliterateは少なくとも1つのファイルパターンを引数として必要とします。 実際にファイルデータの完全消去を実行する場合は、-yオプションを指定する必要があります。 -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の検索をスキップします。 これらのファイルを示すクライアントワークスペースが次回同期されたときに、ワークスペース内にあるそのようなファイルも、ワークスペースから消去されます。 (ビルドマシン上のクライアントワークスペースなどにおいては、多くの場合、このような動作が求められます。)

-p リビジョンがパージ済みとしてマークされ、反映履歴がそのままの状態で残ります(反映履歴のレコードが削除されることはありません)。

g-opts

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

使用上の留意点

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

使用可

使用可

admin

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

    ... #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'

    ここで、p4 filelogの出力内に4つの変更記述が存在することを前提として、この出力の先頭行の「#4」がスクリプト内で使用されている場合、変更記述が2つしか存在しないことが原因で、このスクリプトの実行結果が変わってしまう可能性があります。

  • リビジョン#1とリビジョン#2をパージしてから(または、これらのリビジョンが含まれている範囲をパージしてから)p4 filelogコマンドを実行すると、以下のコマンド出力がその次のコマンド出力に変わる可能性があります。

    ... #3 change 2123 edit on 2019/12/04 by user1@dev1 (binary) 'Third version' ... #2 change 2115 edit on 2019/12/03 by user1@dev1 (binary) 'Second version' ... #1 change 2101 add on 2019/12/01 by user1@dev1 (binary) 'First version'

    上記の出力が以下の出力に変わる理由は、editaddなどの操作が、パージされたリビジョンについてはpurgeに変わってしまうためです。

    ... #3 change 2123 edit on 2019/12/04 by user1@dev1 (binary) 'Third version' ... #2 change 2115 purge on 2019/12/03 by user1@dev1 (binary) 'Second version' ... #1 change 2101 purge on 2019/12/01 by user1@dev1 (binary) 'First version'

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