Helix Core P4コマンドリファレンス (2019.1)

グローバルオプション

Helixサーバコマンドのためのグローバルオプションです。これらのオプションは、コマンドラインでどのHelixサーバコマンドにでも先行させて入力可能です。

構文

p4 [-b batchsize -c client -d dir -H host -p port -P pass -u user -x file -C charset
    -Q charset -Llanguage] [-I] [-G] [-s] [-z tag] cmd [args ...]
p4 -V
p4 -h

オプション

-b batchsize

-x argfileオプションによりコマンドをファイルから実行する際に使用するバッチサイズ(引数の数)を指定します。 デフォルトでは、バッチサイズは128です。

-c client

P4CLIENTの設定を、指定したクライアント名でオーバーライドします。

-d dir

PWDの設定(現在の作業ディレクトリ)をオーバーライドし、指定したディレクトリに置換します。

-I

進捗インジケータ(利用可能である場合)を使用する旨を指定します。 このオプションは、-sおよび-Gと同時に使用できません。

-i -iオプションと-oオプションはグローバルオプションではありませんが、フォームとともに機能して標準入力と標準出力を表します。

-G

すべての出力(およびフォームコマンドに対して、-iで指定する一括入力)を、整列されたPythonディクショナリオブジェクトとしてフォーマットします。 これは、スクリプト作成時に最も多く使用されます。 詳細については、「使用上の留意点」を参照してください。

-H host

P4HOSTの設定をオーバーライドし、指定したホスト名に置換します。

-o -iオプションと-oオプションはグローバルオプションではありませんが、フォームとともに機能して標準入力と標準出力を表します。

-p port

P4PORTの設定を、指定されたprotocol:host:portでオーバーライドします。

-P pass

P4PASSWDの設定を、指定したパスワードでオーバーライドします。

-r retries

ネットワークがタイムアウトした場合にコマンド(特にp4 sync)を再試行する回数を指定します。

-s

Helixサーバコマンドが生成する出力の各行の先頭に、解説フィールド(例えば、text:info:error:exit:)を付加します。 これは、スクリプト作成時に最も多く使用されます。

-u user

P4USERUSER、およびUSERNAMEの設定を、指定したユーザ名でオーバーライドします。

-x argfile

指定したファイルから1行につき1つの引数を読み取るようにHelixサーバに指示します。

argfileが1つのハイフン(-)である場合は、ファイルからではなく標準入力から読み取るようHelixサーバに指示します。

-C charset

P4CHARSETの設定を、指定した文字セットでオーバーライドします。

-Q charset

P4COMMANDCHARSETの設定を、指定した文字セットでオーバーライドします。

-L language

この機能は、システム管理者向けに用意されています。

-z tag

多くのレポート作成コマンドの出力を、p4 fstatにより生成されるタグ付きフォーマットと同じ形式にします。

-q

クワイエットモードでは、情報伝達メッセージを抑止し、警告またはエラーのみを報告します。

-V

p4アプリケーションのバージョンを表示し、コマンドを終了します。

-h

基本的な使用方法を表示し、コマンドを終了します。

使用上の留意点

  • グローバルオプションは、コマンドラインでHelixサーバコマンドに先行させて指定しなければならないことに注意してください。 Helixサーバコマンドの後に続けて指定したオプションは、グローバルオプションとはみなされず、実行しようとしているコマンドのためのオプションとみなされます。 したがって、同じコマンドラインで同じオプションを2回指定することが可能で、それぞれ別々のものとみなされます。

    例えば、コマンドp4 -c anotherclient edit -c 140 file.cは、クライアントワークスペースanotherclient内で、作業中チェンジリスト140に含まれるファイルfile.cを編集のための作業状態にします。

  • -xオプションは単純なタスクを自動化するのに役立ちます。一連の引数を、指定したファイルから1行ごとに処理します。 例えば、簡単な方法で多数のファイルをディポに集約したい場合があります。 多数のファイルを1行につき1つずつ記載したファイルを1つ作成します。 UNIXのcatコマンドを使用して、そのようなファイルがあるか確認します。

    cat filesToAdd.txt
    partOne.txt
    partTwo.txt
    partThree.txt

    -xオプションを指定すると、p4 addコマンドでファイルを1行ずつ処理できます。これは一連のp4 addコマンドを毎回異なるファイル引数を指定して実行した場合と同様です。 そのような場合は、次を実行します。

    p4 -x filesToAdd.txt add

    これは次を実行する場合と同等になります。

    p4 add partOne.txt
    p4 add partTwo.txt
    p4 add partThree.txt

    このため、p4 -x filesToAdd.txtの結果は次のようになります。

    //depot/repo/partOne.txt#1 - opened for add
    //depot/repo/partTwo.txt#1 - opened for add
    //depot/repo/partThree.txt#1 - opened for add

    -xオプションは、入力そのものを生成してしまうと言っていいほど、使い方によってはきわめて強力なものになります。 例えば、file.hファイルを参照するファイルを編集する必要のあるUNIX開発者は、次のようにコマンドを実行できます。

    grep -l file.h *.c | cut -f1 -d: | p4 -x - edit

    各項目の意味は以下のとおりです。

    • grepコマンドは*.cファイルにおけるfile.hの出現を一覧表示します。
    • -lオプションはgrepに各ファイルを1回のみ一覧表示するよう指示します
    • cutコマンドはgrepの出力からファイル名を分離し、その出力をp4 -x - editコマンドに渡します
  • -sオプションは、自動化されたスクリプトにおいて使用すると便利です。

    例えば、p4 -sコマンドを実行し、info:で始まるあらゆる出力行を廃棄し、error:で始 まる出力行がある場合はユーザに警告する、といった内製のビルドプロセスの一部として、スクリプトを記述することができます。

  • Pythonの開発者がスクリプトを作成する際、-Gオプションは有用です。 例えば、IDが分かっているジョブのすべてのフィールドについてディレクトリを得る場合、次のように実行します。

    job_dict = marshal.load(os.popen('p4 -G job -o ' + job_id, 'rb'))

    アプリケーションがどのキーを使用するか分からない場合があります。 p4 -Gの出力をパイプで下記のスクリプトに渡した場合、各レコードはキー/値の組で表示されます。

    #!/usr/local/bin/python
    
    import marshal, sys
    
    try:
        num=0
        while 1:
            num=num+1
            print '\n' % num
            dict = marshal.load(sys.stdin)
            for key in dict.keys(): print "%s: %s" % (key,dict[key])
    
    except EOFError: pass

    Windows上でPythonを使用する開発者は、潜在的なCR/LF変換に注意する必要があります。 上の例において、バイナリ(「rb」)モードでデータを読み取る場合、marshal.load()を呼び出す必要があります。

    ヒント

    このオプションを使用したスクリプトの作成の例とガイダンスについては、サポートナレッジベースの記事「p4 -Gの使用」を参照してください。

  • -Iオプションを使用してリクエストする進捗インジケータを使用するには、p4 -I submitおよびp4 -I sync -qを実行する必要があります。
  • p4 helpp4 -c workspace helpよりも単純ですが、同じ結果を得ることができます。

p4 -p new_service:1234 sync

環境変数P4PORTの設定に関係なく、new_serviceのポート1234に接続した後、同期を実行します。

p4 -c new_client submit -c 100

最初の-cは、クライアントワークスペース名を指定するグローバルオプションです。

2番目の-cは、チェンジリスト番号を指定します。

p4 -s -x filelist.txt edit

filelist.txtがファイルのリストを含む場合、このコマンドはリストにある各ファイルを編集目的で作業状態にし、スクリプトによる解析に適した出力を生成します。

p4 editコマンドが自動実行された結果としてエラー(例えば、filelist.txtに含まれているファイルが見つからないなど)が発生したかどうかを確認するには、出力に「error:」で始まる行が含まれていないか調べます。