p4 pull
概要
メタデータまたはバージョン化ファイルをPerforceマスターサーバから取得しレプリカへ複製、または保留中の転送についてのステータス情報を表示します。
構文
p4 [g-opts
] pull [-J prefix
] [-i interval
] [-b interval
] [-T excluded_tables
] [-P serverid
]
p4 [g-opts
] pull -u [-i interval
]
p4 [g-opts
] pull -l [-s | -j [-J prefix]]
p4 [g-opts
] pull -d -f file
-r revision
p4 [g-opts
] pull -L [-i interval
]
解説
p4 pullコマンドには5つの構文バリアントがあります。
-
1番目のバリアントは、
P4TARGET
で指定したターゲットサーバからジャーナルレコードを取得します。 -
2番目のバリアントは、
P4TARGET
で指定したターゲットサーバからファイルの内容を取得します。 -
3番目のバリアントは、スケジュールされたファイル転送についての情報を表示します。
-
4番目のバリアントは、スケジュールされたファイル転送をキャンセルします。
-
5番目のバリアントは、ジャーナルレコードを、ターゲットサーバのジャーナルファイルからではなく、ローカルのジャーナルファイルから(p4 journalcopyコマンドで作成)取得するように指定します。その後、これらのレコードはレプリカサーバのデータベースに書き込まれます。フェイルオーバー用にスタンバイレプリカを使用している場合、このバリアントが必要です。
テスト目的以外でp4 pullがコマンドラインから実行されることはほとんどありません。代わりにstartup.
構成可能変数を設定し、レプリカサーバが起動するたびにp4 pullプロセスが起動するようにしてください。
n
ジャーナルおよびファイル内容の取得
p4 pullコマンドは、P4TARGET
により指定されたターゲットサーバからジャーナルレコードまたはファイル内容のどちらかを取得するよう、現在のレプリカサーバに指示します。レプリカサーバの中には、ジャーナルレコードとファイル内容の両方は必要ないものもあります。例えば、オフラインのチェックポイント設定に使用するレプリカサーバでは、ファイルの内容を転送する必要はありません。
メタデータとファイル内容の両方を複製するには、2つのp4 pullコマンドを同時に実行する必要があります。この場合、p4 pullを(-u
オプションを付けずに)1回実行してマスターサーバのメタデータを複製し、さらにp4 pullを(-u
オプションを付けて)1回以上実行してサーバのバージョンファイルを複製します。
-
-i
オプションは次の更新までのポーリング間隔(単位は秒)を指定します。-i
が指定されない場合、p4 pullはポーリング間隔を1として実行した後に終了します。 -
-b
オプションは、pull実行の失敗後に待機する時間を指定します。-b
が指定されていない場合、p4 pullは60秒ごとに再試行されます。
-T
オプションは、複製しないテーブルを除外します。例えば、ビルドファームサーバは、db.have
、db.working
、db.resolve
テーブルを複製する必要はありません。
待ち状態のファイル転送処理を削除するには、p4 pull -d -f
file
-r
rev
を使用します。このコマンドは、マスターに回復不可能なエラーがあるために待ち状態のファイル転送が繰り返し失敗される場合に有効です。
ステータス情報を得る
待ち状態のファイル内容転送のリストを表示するには、-l
オプションを使用します。-l
とともに-s
が指定されると、スケジュールされたファイル転送の概要が表示されます。追加の行で、少なくとも1つの保留中の転送を含む最も古いチェンジリスト番号を指定します。これは、レプリカサーバにアーカイブ内容の転送のラグがどれくらあるかのヒントになります。
1つの演算子で、p4 journalcopy -l、p4 pull -l -j、およびp4 pull -l -sコマンドを実行できます。これにより、1つの演算子で複製の状況を確認することが可能になります。
File transfers:n
active/m
total, bytes:nnn
active/mmmmm
total. Oldest change with at least one pending file transfer:n
-l
とともに-j
が指定されると、現在のレプリカとそのマスターに関する現在のジャーナルの状態、ステートファイルの最終更新時刻、およびサーバのローカル時刻とタイムゾーンが報告されます。例:
Current replica journal state is: Journaljjj
, Sequence:sssss
. Current master journal state is: Journaljjj
, Sequence:sssss
. The statefile was last modified at: 2012/01/10 14:23:23. The Server time is currently: 2012/01/10 14:23:23 -0800 PST
jjj
の値はジャーナル番号を指定します。sssss
は、そのジャーナルのオフセットを指定します。
オプション
|
取得の失敗後に再試行するためのポーリング間隔を秒数で指定します。このオプションが指定されていない場合、pullは60秒後に再試行されます。 |
|
保留中のファイル内容転送を中止します。ただし、 Noteこれは、通常のPerforceファイルとリビジョンデータではなく、アーカイブファイルとリビジョンになります。p4 pull -lコマンドを使用して、正しいファイル名とリビジョンを取得します。 |
|
ファイル内容を取得するポーリング間隔を秒数で指定します。最も短い間隔は1秒です。このオプションを省略すると、コマンドは1回だけ実行されて終了します。
間隔を |
|
ジャーナルファイルの接頭語を指定します。構成可能変数 マスターサーバがデフォルトではないジャーナルの位置を使用している場合、これによりマスターサーバのジャーナルファイルの位置を特定することができます。 |
|
転送がスケジュールされているファイルのリストを表示します。 |
|
レプリカとマスターにおける現在のジャーナルの状態を表示します。 マスターにおけるジャーナルローテーションの処理中、p4 pull -l -jの出力には3行が書き出される可能性があります。それらは、レプリカジャーナルの現在の状態を表す行、対応するマスター上のジャーナルの状態を表す行、そしてマスター上の新しいジャーナルを表す行(ここからのデータはレプリカにはまだ到達していない)です。 |
|
待ち状態のファイル内容転送の概要を表示します。このリストが予想外に長いまたは増加している場合は、追加でp4 pull -uコマンドの実行を検討してください。 |
|
通常p4 journalcopyコマンドにより作成されるローカルのジャーナルファイルから、ジャーナルレコードを取得します。 |
|
指定サーバーのp4 serverフォームの
以前のリリースでは、このオプションはフィルタ仕様で設定されたフィルタを確認していました。この確認はもう必要ではありません。このオプションは、以前のリリースのサポート継続のために保持されました。これは、複数のサーバでフィルタ構成を共有する場合にも便利です。この場合、 |
|
レプリカサーバのジャーナルレコードから除外するデータベーステーブル(
複数のテーブルを指定するには、リストを二重引用符で囲み、テーブル名をスペースで区切ります。テーブル名は、カンマで区切ることもできます。たとえば、 |
|
ジャーナルレコードの代わりにアーカイブファイルを転送します。このオプションを省略すると、このコマンドはジャーナルレコードを取得します。 |
|
「“グローバルオプション”」を参照してください。 |
使用上の留意点
ファイル引数にリビジョン指定子を使えるか? |
ファイル引数にリビジョン範囲を使えるか? |
最低限必要なアクセスレベル |
---|---|---|
適用外 |
適用外 |
|
-
ほとんどの場合、サーバの複製にはp4 pullよりもp4 replicateの方が適切です。
-
マスターサーバまたはレプリカサーバのどちらかを停止すると、レプリカサーバはステートファイルという小さいテキストファイルの中に最新のジャーナルの位置を記録します。デフォルトでは、ステートファイルは
state
という名前でレプリカサーバのルートディレクトリに格納されます。statefile
で構成可能変数p4 configureを設定することにより、別のファイル名を指定できます。 -
複製環境で動作させるためのPerforceの構成に関する詳細については、『Perforceサーバ管理者ガイド: マルチサイト展開』を参照してください。