保留状態のチェンジリストの昇格
エッジサーバ上の保留状態のチェンジリストは、通常他のエッジサーバからアクセスできませんが、自動的または明示的にコミットサーバに昇格することができます。昇格された保留状態のチェンジリストは、どのエッジサーバでも使用可能です。
- 共有されたアーカイブ構成では、コミットサーバとエッジサーバは同じストレージデバイスでアーカイブされたコンテンツにアクセスできます。保留状態は、自動的にコミットサーバに昇格されます。詳細については、自動的に保留状態を昇格するを参照してください。
- コミットサーバとエッジサーバがアーカイブを共有していない場合、保留状態を明示的に昇格する必要があります。詳細については、「明示的に保留状態を昇格する」を参照してください。
p4 describe
コマンド、p4
changes
コマンド、またはp4 change -o
コマンドの-ztag
出力を使用して、保留状態の昇格ステータスを表示できます。
昇格された保留状態の操作の制限に関する詳細については、昇格された保留状態を操作するを参照してください。
自動的に保留状態を昇格する
エッジサーバとコミットサーバが同じアーカイブコンテンツにアクセスできるように設定される場合、保留状態の昇格は、自動的に行われます。p4 shelve -p
を使用した保留状態のフィールドの昇格は必要ありません。
エッジサーバとコミットサーバが同じアーカイブコンテンツにアクセスできるように設定するには、コミットサーバとエッジサーバの両方で同じパスにserver.depot.root
を設定してください。また、エッジサーバでlbr.replication
構成可能変数をshared
に設定してください。以下に例を示します。
$ p4 configure set commit#server.depot.root=/p4/depot/root
$ p4 configure set edge#server.depot.root=/p4/depot/root
$ p4 configure set edge#lbr.replication=shared
明示的に保留状態を昇格する
明示的に保留状態を昇格させるには、2つの方法があります。
-
dm.shelve.promote
構成可能変数をdm.shelve.promote=1
に設定する。これにより、エッジサーバは常に保留中のファイルをコミットサーバに昇格させます。つまり、そのファイルコンテンツはコミットサーバとエッジサーバの両方に転送され、保存されます。(一般に、自動昇格を有効にすることはお勧めできません。共有するつもりのない保留中ファイルの不要な転送が発生することになります。)
-
-p
オプションは、p4 shelve
コマンドとあわせて使用する必要があります。このオプションについて詳しくは、以下の例を参照してください。
例えば、edge1
とedge2
の2つのエッジサーバがあるとします。
-
edge1
からチェンジリストを保留し、昇格させます。edge1$ p4 shelve -p -c 89
-
保留状態のチェンジリストが
edge2
で使用できるようになります。edge2$ p4 describe -S 89
-
昇格が必要となるのは、一度のみです。
続けて
p4 shelve
コマンドを入力することで、コミットサーバの保留状態のチェンジリストを、サーバロックプロテクションにより自動的に更新できます。例えば、edge1
に変更を加えて、保留済みのチェンジリストを再表示します。edge1$ p4 shelve -r -c 89
更新が
edge2
に表示されました。edge2$ p4 describe -S 89
クライアントのアンロード時に保留状態を昇格させる
p4 unload
コマンドの-p
オプションを使用することで、アンロードされる特定のクライアントに属する、まだ昇格されていない保留状態を昇格させることができます。他のエッジサーバからアクセスできる場合は保留状態がコミットサーバに昇格されます。
昇格された保留状態を操作する
以下の操作を行うことができます。
- チェンジリストから保留状態のファイルを削除できます。ただし、保留状態のチェンジリストを降格することはできません
- 昇格したシェルフをオープンファイルまたは別のサーバ上のブランチに保留解除できます
- 変更を保持しているサーバでのみ、昇格された保留状態に
p4 submit -e
を実行できます p4 unshelve
コマンドを使用して、昇格された保留状態を、あるエッジサーバから別のエッジサーバに移動できます