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 diff
、p4 diff2
、p4 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を参照)。 |
|
|
|
保留状態のファイルを作成、破棄、または変更する作業中チェンジリストを指定します。 作業中チェンジリストを所有しているユーザとクライアントのみが、保留ファイルの追加と変更を行うことができます (管理者は、 ファイルパターンを使用して指定したファイルは、指定したチェンジリスト内で既にオープンされている必要があります。 作業状態のファイルをチェンジリスト間で移動するには、 |
|
-d -cオプションを指定すると、指定したチェンジリスト内の保留ファイルが削除され、 保留状態のチェンジリストにストリーム仕様が含まれている場合、すべてのファイルが削除されると、ストリーム仕様がデフォルトで削除されます。 -dオプションと-Asオプションを組み合わせて指定すると、ファイルが存在する状態であっても、ストリーム仕様が強制的に削除されます。 |
|
作業中チェンジリスト内の保留ファイルを強制的に上書きするには、-fオプションを-cオプションまたは-iオプションとともに指定します。 作業中チェンジリストにある既存の保留状態のファイルを、クライアントワークスペース内にコピーされた内容へと強制的に上書きします。 Helixサーバ管理者はこのオプションを |
|
標準入力から、作業中チェンジリストの仕様と保留ファイルが読み込まれます。 ユーザのエディタは起動しません。 保留ファイルが含まれている既存のチェンジリストを変更するには、-cオプションを使用して、チェンジリスト番号を指定します。 |
|
保留状態の変更が、エッジサーバからコミットサーバに昇格されます。この変更には、分散環境内の他のエッジサーバからアクセスすることができます。 保留状態の変更が昇格されると、保留ファイルに対する以降のローカル修正もすべてコミットサーバにプッシュされ、保留ファイルが削除されるまで維持されます。 詳細については、「使用上の留意点」を参照してください。 -pオプションと-cオプションを組み合わせて指定すると、-fオプションまたは-rオプションを使用して昇格前に保留ファイルを更新しない限り、変更されていない保留ファイルが昇格されます。 |
|
チェンジリスト内の保留状態のファイルをすべて、ワークスペースで作業状態にされているファイルに置き換えます。
|
|
自動で起動した子プロセスから独立したネットワーク接続を使用した複数ファイルの並列転送を指定します。 構成可能変数net.parallel.shelve.batch、net.parallel.shelve.min、net.parallel.shelve.threadsも参照してください。 |
|
詳細については、「グローバルオプション」を参照してください。 |
使用上の留意点
ファイル引数にリビジョン指定子を使えるか? | ファイル引数にリビジョン範囲を使えるか? | 最低限必要なアクセスレベル |
---|---|---|
使用可 |
使用可 |
|
昇格された保留ファイルとは、分散環境のコミットサーバ上に存在する保留ファイルのことです。 コミットサーバで直接作成されたか、またはp4 shelve
コマンドの-p
オプションを指定して昇格されたため、コミットサーバに存在します。 保留ファイルにアクセスするコマンドは、昇格された保留ファイルの処理方法を認識しています。
保留ファイルを降格するには、保留ファイルを削除して新しい保留ファイルを作成します。
保留ファイルは初回の作成時に昇格することができます。 通常の保留ファイルは、次のいずれかのコマンドを実行して作成した後に昇格できます。
$ p4 shelve -p -f -c myChange
$ p4 shelve -p -r -c myChange
保留ファイルを昇格することにより、保留ファイルをあるサーバから別のサーバに移動できるようになります。 これを行うには、次の手順を実行する必要があります。
- 保留ファイルのコピー元のサーバ(サーバXとします)で保留ファイルを昇格します。
- コピー先のサーバ(サーバYとします)に保留ファイルを保留解除します。
- サーバYの変更を保留にします。これにより、サーバYが所有している変更内のファイルが作業状態になります。新しい保留ファイルは昇格されずに作成されますが、必要に応じて昇格できます。
保留状態の変更が昇格されているかどうかを特定するには、その変更を所有しているサーバ以外のサーバで保留ファイルへのアクセスを試みるか、p4 -ztag
changes
コマンドの出力を確認します。
昇格された保留ファイルを操作する際は、以下の制限に注意します。
- 昇格された保留ファイルが存在する場合、エッジサーバワークスペースをアンロードすることはできません。
- 昇格された保留ファイルを使用する場合は、注意して使用してください。 保留ファイルの昇格やアクセスには時間がかかります。
関連コマンド
保留されたファイルをワークスペースに復元する |