p4 shelve
概要
ファイルをサブミットすることなく、作業中チェンジリストからディポに保存します。
構文
p4 [g-opts
] shelve [-p] [file
…]
p4 [g-opts
] shelve [-a option
] [-p] -i [-f | -r]
p4 [g-opts
] shelve [-a option
] [-p] -r -c change
p4 [g-opts
] shelve [-a option
] [-p] -c change
[-f] [file
…]
p4 [g-opts
] shelve -d -c change
[-f] [file
…]
解説
保留とは、チェンジリストをサブミットせずに、進行中の作業を一時的にPerforceバージョン化サービスに格納する処理のことです。保留処理は、複数の開発タスク(より優先度の高い作業の割り込みや複数プラットフォームでのテストなど)を同じファイル集合に対して行う必要がある場合、または作業をディポに登録する前にコードレビュー用にファイルを共有する必要がある場合に有効です。
p4 shelveコマンドにより、保留状態のファイルを作業中チェンジリスト内で作成、変更、または破棄することができます。保留状態のファイルは、それらが破棄(p4 shelve -dを使用)されるか、以降のp4 shelveコマンドによって置き換えられるまでディポに保持されます。
ファイルを保留した後は、クライアントワークスペース内でそれらを元に戻すか変更できます。また、保留されたバージョンのファイルをp4 unshelveコマンドによってワークスペースに復元することができます。
ファイルが保留されているとき、他のユーザは保留状態のファイルを自分のワークスペースまたは他のクライアントワークスペースに保留解除することができます。
保留されたファイルには、p4 diff、p4 diff2、p4 files、p4 printの各コマンドにより、リビジョン指定子@=
を使用してアクセスすることも可能です。このとき、change
change
には作業中チェンジリストの番号を指定します。
分散環境で作業している場合は、-p
オプションを使用して、保留状態のチェンジリストをエッジサーバからコミットサーバに昇格します。コミットサーバ上のチェンジリストには、分散環境内の他のエッジサーバからアクセスすることができます。保留状態の既存のチェンジリストを昇格するときは、-f
または-r
オプションを使用して保留状態のファイルの内容を変更しない限り、未変更で昇格されます。分散環境での保留状態のファイルの使用については、「使用上の留意点」および『Perforceサーバ管理者ガイド: マルチサイト展開』を参照してください。
引数が指定されていない場合、p4 shelveは新しいチェンジリストを作成し、ユーザのデフォルトチェンジリストからファイルを追加した後(ユーザがp4 submitで使用されるものと同様のフォームに入力した後)、指定されたファイルをディポに保留します。ファイルパターンが指定されている場合、p4 shelveはそのパターンに一致するファイルのみを保留します。
前から存在する保留領域にファイルを追加するには、最初にそのファイルを保留領域のチェンジリスト内で作業状態にする必要があります。p4 reopenを使用して、作業状態のファイルをあるチェンジリストから別のチェンジリストに移動させてください。
オプション
|
|
|
保留状態のファイルを作成、破棄、または変更する作業中チェンジリストを指定します。
作業中チェンジリストを所有しているユーザおよびクライアントワークスペースのみが、保留状態のファイルを追加または変更できます。(管理者は ファイルパターンによって指定されたファイルは、指定されたチェンジリスト内で既に作業状態にされている必要があります。p4 reopenを使用して、作業状態のファイルをあるチェンジリストから別のチェンジリストに移動させてください。 |
|
指定されたチェンジリストにある保留状態のファイルを破棄し、それらに対してp4 unshelveの操作を行えないようにします。
作業中チェンジリストを所有しているユーザおよびクライアントワークスペースのみが、保留状態のファイルを破棄できます。(管理者は |
|
作業中チェンジリストにある既存の保留状態のファイルを、クライアントワークスペース内にコピーされた内容へと強制的に上書きします。
Perforce管理者はこのオプションを |
|
チェンジリストのコメントを標準入力から読み取ります。入力はp4 shelveのフォームで使用されているのと同じ形式でなければなりません。(保留状態のファイルを含む既存のチェンジリストを変更する場合、このオプションは |
|
保留状態の変更をエッジサーバからコミットサーバに昇格します。コミットサーバには、分散環境内の他のエッジサーバからアクセスすることができます。保留状態の変更が昇格されると、保留ファイルに対する以降のローカル修正もすべてコミットサーバにプッシュされ、保留ファイルが削除されるまで維持されます。詳細については、「使用上の留意点」を参照してください。 |
|
チェンジリスト内の保留状態のファイルをすべて、ワークスペースで作業状態にされているファイルに置き換えます。
|
|
「“グローバルオプション”」を参照してください。 |
使用上の留意点
ファイル引数にリビジョン指定子を使えるか? |
ファイル引数にリビジョン範囲を使えるか? |
最低限必要なアクセスレベル |
---|---|---|
使用可 |
使用可 |
|
昇格された保留ファイルは、分散構成のコミットサーバに存在する保留ファイルです。コミットサーバで直接作成されたか、またはp4 shelveコマンドの-p
オプションを指定して昇格されたため、コミットサーバに存在します。保留ファイルにアクセスするコマンドは、昇格された保留ファイルの処理方法を認識しています。
保留ファイルを降格するには、保留ファイルを削除して新しい保留ファイルを作成します。
保留ファイルは初回の作成時に昇格することができます。通常の保留ファイルは、以下のいずれかのコマンドを実行して作成した後に昇格できます。
shelve -p -f -c myChange shelve -p -r -c myChange
保留ファイルを昇格することにより、保留ファイルをあるサーバから別のサーバに移動できるようになります。これを行うには、以下の手順を実行する必要があります。
-
保留ファイルのコピー元のサーバ(サーバXとします)で保留ファイルを昇格します。
-
コピー先のサーバ(サーバYとします)に保留ファイルを保留解除します。
-
サーバYの変更を保留にします。これにより、サーバYが所有している変更内のファイルが作業状態になります。新しい保留ファイルは昇格されずに作成されますが、必要に応じて昇格できます。
保留状態の変更が昇格されているかどうかを特定するには、その変更を所有しているサーバ以外のサーバで保留ファイルへのアクセスを試みるか、p4 -ztag changesコマンドの出力を確認します。
昇格された保留ファイルを操作する際は、以下の制限に注意します。
-
保留ファイルを所有しているサーバを使用してしない場合、リモートで昇格された保留ファイルを、すでに作業状態になっているローカルファイルに保留解除することはできません。
-
保留ファイルを所有しているサーバを使用していない場合、別のブランチに保留解除することはできません(
-b
-S
)。 -
昇格された保留ファイルが存在する場合、エッジサーバワークスペースをアンロードすることはできません。
-
昇格された保留ファイルは慎重に使用してください。保留ファイルの昇格およびアクセスには時間がかかります。