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

p4 shelve

ファイルをサブミットすることなく、作業中チェンジリストからディポに保存します。

構文

p4 [g-opts] shelve [-Af | -As] [-p] [files]
p4 [g-opts] shelve [-Af | -As] [-a option] [-p] -i [-f | -r]
p4 [g-opts] shelve [-Af | -As] [-a option] [-p] -r -c changelist#
p4 [g-opts] shelve [-Af | -As] [-a option] [-p] -c changelist# [-f] [files]
p4 [g-opts] shelve [-Af | -As] -d -c changelist# [-f] [files] --parallel=threads=N[,batch=N][,min=N]

説明

保留とは、チェンジリストをサブミットせずに、進行中の作業を一時的にHelixサーバに格納する処理のことです。 以下の処理が必要な場合は、保留を行うと便利です。

  • 同じファイルセットを使用して複数の開発作業を行う場合(複数のプラットフォームにまたがってテストを行う場合など)

または

  • 作業内容をディポにコミットする前に、コードレビュー用にファイルを共有する場合

p4 shelveコマンドにより、保留状態のファイルを作業中チェンジリスト内で作成、変更、または破棄することができます。 保留状態のファイルは、それらが破棄(p4 shelve -dを使用)されるか、以降のp4 shelveコマンドによって置き換えられるまでディポに保持されます。 p4 shelveは、保留されるファイルの作業中のリビジョンを表示します。

保留されるファイルに加えて、p4 shelveは作業中のストリームの仕様も保留します。 作業中のストリームの仕様については、p4 streamを参照してください。

ファイルを保留すると、以下の操作が可能になります。

  • クライアントワークスペースでファイルを元に戻す(またはファイルを編集する)。
  • p4 unshelveコマンドを使用して、ファイルの保留バージョンをワークスペースに復元する。

ファイルが保留されているとき、他のユーザは保留状態のファイルを自分のワークスペースまたは他のクライアントワークスペースに保留解除することができます。

保留されたファイルには、p4 diffp4 diff2p4 files、および p4 printの各コマンドでリビジョン指定子@=changeを使用してアクセスすることも可能です。ただし、changeは作業中チェンジリスト番号を示します。

分散環境で作業している場合は、-pオプションを使用して、保留状態のチェンジリストをエッジサーバからコミットサーバに昇格します。コミットサーバ上のチェンジリストには、分散環境内の他のエッジサーバからアクセスすることができます。 保留状態の既存のチェンジリストを昇格するときは、-fまたは-rオプションを使用して保留状態のファイルの内容を変更しない限り、未変更で昇格されます。 分散環境で保留ファイルを使用する方法については、『Helix Coreサーバ管理者ガイド: マルチサイト展開』の使用上の留意点と「保留状態のチェンジリストの昇格」を参照してください。

引数が指定されていない場合、p4 shelveは新しいチェンジリストを作成し、ユーザのデフォルトチェンジリストからファイルを追加した後(ユーザがp4 submitで使用されるものと同様のフォームに入力した後)、指定されたファイルをディポに保留します。 ファイルパターンが指定されている場合、p4 shelveはそのパターンに一致するファイルのみを保留します。

既存のシェルフにファイルを追加するには、最初にそのファイルを、追加先シェルフのチェンジリストで開く必要があります。

作業状態のファイルをチェンジリスト間で移動するには、p4 reopenコマンドを使用します。

注意

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

ヒント

デフォルトのチェンジリスト内でオープンされたファイルからシェルフを作成する場合、[files]引数には1つのファイルパターンのみを指定します。以下に例を示します。

p4 shelve ....html

ワイルドカードを使用して複数のファイルを指定できることに注意してください。

ただし、番号が付いている変更内に作業状態のファイルが含まれている場合は、複数のfile引数を指定することができます。以下に例を示します。

p4 shelve -c 12108 ....html "*.c"

ストリームとp4 shelveコマンド

ストリーム仕様がオープンされている場合、保留状態のチェンジリストにもそのストリーム仕様がデフォルトで含まれます。 p4 help streamcmdsコマンドを実行して、コマンドラインに表示される出力を確認してください。

デフォルトでは、すべてのファイルが削除されない限り、ストリーム仕様は削除されません。

オプション

-Af

指定したチェンジリストでファイルのみが保留されます。

-As

指定したチェンジリストで、作業状態のストリーム仕様のみが保留されます。 ストリーム仕様がオープンされていて、-Afオプションと-Asオプションをどちらも指定しなかった場合、保留状態のファイルにもストリーム仕様がデフォルトで含まれます (p4 help streamcmdsを参照)。

-a option

submitunchanged(デフォルト)オプションはすべてのファイルを保留にします。 leaveunchangedオプションを指定すると、変更されたファイルのみが保留されます。 変更されていないファイルは、番号付き作業中チェンジリストでオープンされたままになります。

-c change

保留状態のファイルを作成、破棄、または変更する作業中チェンジリストを指定します。

作業中チェンジリストを所有しているユーザとクライアントのみが、保留ファイルの追加と変更を行うことができます (管理者は、-fを指定してファイルを破棄することができます)。

ファイルパターンを使用して指定したファイルは、指定したチェンジリスト内で既にオープンされている必要があります。 作業状態のファイルをチェンジリスト間で移動するには、p4 reopenコマンドを使用します。

-d

-d -cオプションを指定すると、指定したチェンジリスト内の保留ファイルが削除され、p4 unshelveコマンドでそれらのファイルを使用できなくなります。 デフォルトの場合、作業中チェンジリストのユーザとクライアントのみが、保留ファイルを削除することができます。 adminアクセス権をつユーザは、-fオプションを指定することにより、保留ファイルを強制的に削除することができます。

保留状態のチェンジリストにストリーム仕様が含まれている場合、すべてのファイルが削除されると、ストリーム仕様がデフォルトで削除されます。

-dオプションと-Asオプションを組み合わせて指定すると、ファイルが存在する状態であっても、ストリーム仕様が強制的に削除されます。

-f

作業中チェンジリスト内の保留ファイルを強制的に上書きするには、-fオプションを-cオプションまたは-iオプションとともに指定します。

作業中チェンジリストにある既存の保留状態のファイルを、クライアントワークスペース内にコピーされた内容へと強制的に上書きします。

Helixサーバ管理者はこのオプションを-dとともに使用して、指定されたチェンジリストにある保留状態のファイルを強制的に破棄することができます。 このオプションを使用すると、衝突解決が保留されている原因となっている保留状態のファイルが削除されます。 その場合、衝突解決を行うユーザは、保留ファイルの内容をマージできなくなります。 そのため、-ayオプションを使用して存在しない保留ファイルを無視するか、保留ファイルを元に戻す必要があります。

-i

標準入力から、作業中チェンジリストの仕様と保留ファイルが読み込まれます。 ユーザのエディタは起動しません。 保留ファイルが含まれている既存のチェンジリストを変更するには、-cオプションを使用して、チェンジリスト番号を指定します。

-p

保留状態の変更が、エッジサーバからコミットサーバに昇格されます。この変更には、分散環境内の他のエッジサーバからアクセスすることができます。 保留状態の変更が昇格されると、保留ファイルに対する以降のローカル修正もすべてコミットサーバにプッシュされ、保留ファイルが削除されるまで維持されます。 詳細については、「使用上の留意点」を参照してください。

-pオプションと-cオプションを組み合わせて指定すると、-fオプションまたは-rオプションを使用して昇格前に保留ファイルを更新しない限り、変更されていない保留ファイルが昇格されます。

-r

チェンジリスト内の保留状態のファイルをすべて、ワークスペースで作業状態にされているファイルに置き換えます。

-rオプション(-cまたは-iとともに使用)は、チェンジリスト内の保留状態のファイルをすべて、そのチェンジリスト番号で作業状態にされているワークスペース内のファイルに置き換えます。 以前に保留状態にされたファイルは削除されます。 作業中チェンジリストのユーザとクライアントワークスペースのみが、保留状態のファイルを置き換えることができます。

--parallel

 

自動で起動した子プロセスから独立したネットワーク接続を使用した複数ファイルの並列転送を指定します。 構成可能変数net.parallel.shelve.batchnet.parallel.shelve.minnet.parallel.shelve.threadsも参照してください。

g-opts

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

使用上の留意点

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

使用可

使用可

write

昇格された保留ファイルとは、分散環境のコミットサーバ上に存在する保留ファイルのことです。 コミットサーバで直接作成されたか、またはp4 shelveコマンドの-pオプションを指定して昇格されたため、コミットサーバに存在します。 保留ファイルにアクセスするコマンドは、昇格された保留ファイルの処理方法を認識しています。

保留ファイルを降格するには、保留ファイルを削除して新しい保留ファイルを作成します。

保留ファイルは初回の作成時に昇格することができます。 通常の保留ファイルは、次のいずれかのコマンドを実行して作成した後に昇格できます。

$ p4 shelve -p -f -c myChange
$ p4 shelve -p -r -c myChange

保留ファイルを昇格することにより、保留ファイルをあるサーバから別のサーバに移動できるようになります。 これを行うには、次の手順を実行する必要があります。

  1. 保留ファイルのコピー元のサーバ(サーバXとします)で保留ファイルを昇格します。
  2. コピー先のサーバ(サーバYとします)に保留ファイルを保留解除します。
  3. サーバYの変更を保留にします。これにより、サーバYが所有している変更内のファイルが作業状態になります。新しい保留ファイルは昇格されずに作成されますが、必要に応じて昇格できます。

保留状態の変更が昇格されているかどうかを特定するには、その変更を所有しているサーバ以外のサーバで保留ファイルへのアクセスを試みるか、p4 -ztag changesコマンドの出力を確認します。

昇格された保留ファイルを操作する際は、以下の制限に注意します。

  • 昇格された保留ファイルが存在する場合、エッジサーバワークスペースをアンロードすることはできません。
  • 昇格された保留ファイルを使用する場合は、注意して使用してください。 保留ファイルの昇格やアクセスには時間がかかります。

関連コマンド

保留されたファイルをワークスペースに復元する

p4 unshelve