Helix Coreサーバ管理者ガイド: マルチサイト展開 (2019.1)

保留状態のチェンジリストの昇格

エッジサーバ上の保留状態のチェンジリストは、通常他のエッジサーバからアクセスできませんが、自動的または明示的にコミットサーバに昇格することができます。昇格された保留状態のチェンジリストは、どのエッジサーバでも使用可能です。

  • 共有されたアーカイブ構成では、コミットサーバとエッジサーバは同じストレージデバイスでアーカイブされたコンテンツにアクセスできます。保留状態は、自動的にコミットサーバに昇格されます。詳細については、自動的に保留状態を昇格するを参照してください。
  • コミットサーバとエッジサーバがアーカイブを共有していない場合、保留状態を明示的に昇格する必要があります。詳細については、「明示的に保留状態を昇格する」を参照してください。

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コマンドとあわせて使用する必要があります。

    このオプションについて詳しくは、以下の例を参照してください。

例えば、edge1edge2の2つのエッジサーバがあるとします。

  1. edge1からチェンジリストを保留し、昇格させます。

    edge1$ p4 shelve -p -c 89
  2. 保留状態のチェンジリストがedge2で使用できるようになります。

    edge2$ p4 describe -S 89
  3. 昇格が必要となるのは、一度のみです。

    続けてp4 shelveコマンドを入力することで、コミットサーバの保留状態のチェンジリストを、サーバロックプロテクションにより自動的に更新できます。例えば、edge1に変更を加えて、保留済みのチェンジリストを再表示します。

    edge1$ p4 shelve -r -c 89

    更新がedge2に表示されました。

    edge2$ p4 describe -S 89

クライアントのアンロード時に保留状態を昇格させる

p4 unloadコマンドの-pオプションを使用することで、アンロードされる特定のクライアントに属する、まだ昇格されていない保留状態を昇格させることができます。他のエッジサーバからアクセスできる場合は保留状態がコミットサーバに昇格されます。

昇格された保留状態を操作する

以下の操作を行うことができます。

  • チェンジリストから保留状態のファイルを削除できます。ただし、保留状態のチェンジリストを降格することはできません
  • 昇格したシェルフをオープンファイルまたは別のサーバ上のブランチに保留解除できます
  • 変更を保持しているサーバでのみ、昇格された保留状態にp4 submit -eを実行できます
  • p4 unshelveコマンドを使用して、昇格された保留状態を、あるエッジサーバから別のエッジサーバに移動できます