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

p4 diff

ワークスペースとディポの内容を比較するdiffユーティリティです。 (2つのディポパスの比較については、p4 diff2を参照してください。)

構文

p4 [g-opts] diff [-doptions] [-f -t -Od] [-m max] [-soptions] [file[rev] ...]

説明

p4 diffは、ユーザのワークステーション上で差分プログラムを実行し、ワークスペース内のファイルを、ディポに保存されているリビジョンと比較します。

このコマンドはファイル引数を付けることができます。引数にはリビジョン指定子を含めることができます。

  • 引数にリビジョン指定子が含まれていると、クライアントと指定されたリビジョンとの差分を調べることができます。
  • 引数にリビジョン指定子が含まれていない場合、クライアントワークスペースのファイルは、現在の編集元のリビジョン(通常は最新リビジョン)と比較されます。
  • いずれの場合でも、クライアントのファイルはコマンドeditで作業状態にされていなければなりません。または、クライアントのファイルが最後に同期したリビジョン以外のリビジョンに対して、この比較が行われなければなりません。

ファイル引数にワイルドカードが含まれている場合は、そのファイルパターンに適合するすべての作業状態のファイルについて差分を調べられます。

ファイル引数が与えられていない場合には、すべての作業状態のファイルについてディポの対応するファイルとの差分を調べられます。

ヒント

デフォルトでは、p4コマンドラインアプリケーションに組み込まれている差分ルーチンがワークステーションで実行されます。 P4DIFF環境変数で外部diffプログラムを指定することにより、ワークステーションで外部diffプログラムが実行されるようになります。

オプション

-doptions

オプションを基本差分ルーチンに渡します(詳しくは使用上の留意点を参照)。

-f

クライアントファイルがコマンドeditで作業状態にされていない場合でも、差分比較を強制します。

-m max

max個までの差分(またはステータス)のみを一覧表示します。ただし、-sオプションが使用されている場合-mオプションは無視されます。

-Od

出力を差分のあるファイルのみに限定します。

-soptions

表示オプションを基本差分ルーチンに渡します(詳しくは使用上の留意点を参照)。

-t

ファイルがtextタイプでない場合でもリビジョンの差分比較を行います。

g-opts

詳細については、「グローバルオプション」を参照してください。

使用上の留意点

ファイル引数にリビジョン指定子を使えるか? ファイル引数にリビジョン範囲を使えるか? 最低限必要なアクセスレベル

使用可

使用不可

read

  • p4 diffでサポートされている-doptionsは、次のとおりです。

    オプション 名前

    -db

    空白文字の変更を無視します。このオプションは-dlを意味します。

    -dc[num]

    context出力形式。変更された行番号の範囲と、その周辺のnum行分を表示します。

    -dl

    差分を発見したときに行末識別(CR/LF)を無視します。

    -dn

    RCS出力形式。ファイルに対して行われた追加および削除と、関連した行範囲を表示します。

    -ds

    summary出力形式。追加、削除および変更されたまとまり(チャンク)と行の数を表示します。

    -du[num]

    unified出力形式。追加および削除された行を、patch(1)ユーティリティに適した内容でnum行分表示します。

    -dw

    空白文字を完全に無視します。このオプションは-dlを意味します。

  • p4 diffでサポートされている-soptionsは、次のとおりです。

    オプション 名前

    -sa

    ディポに保存されているリビジョンと異なる作業状態のファイルまたは行方不明の作業状態のファイルの名前のみを表示します。

    -sb

    衝突解決済みであり、反映目的で作業状態にされているが、衝突解決後に変更されているファイルの名前のみを表示します。

    -sd

    クライアントワークスペース内にはないがディポ内にはある、作業状態にないファイルの名前のみを表示します。

    -se

    ディポに保存されているリビジョンと異なる、クライアントワークスペース内の作業状態にないファイルの名前のみを表示します。

    -sl file ...

    作業状態でないすべてのfileがディポと比較され、samediff、またはmissingのステータスと共に一覧表示されます。

    -f-slの両方を使用すると、編集目的で作業状態にされたファイルも比較され、そのステータスが一覧表示されます。

    -sr

    ディポに保存されているリビジョンと一致する、クライアントワークスペース内の作業状態にあるファイルの名前のみを表示します。

  • 差分プログラムに複数のオプションを渡す場合は、次の例のようにそれらのオプションをまとめます。 以下に例を示します。

    p4 diff -dub file

    この例では、空白文字の変更を無視するunified形式の差分が指定されます。

  • -duで使用するためにpatch(1)オプションで生成されるunified形式の差分のヘッダ行には、ローカルシンタックスではなくHelixサーバシンタックスでファイル名が表示されます。
  • リビジョンがファイル指定に含まれている場合は、ファイルがチェンジリストで作業状態であるかどうか、またはワークスペースが指定されたリビジョンに同期されているかどうかにかかわらず、-sオプションによってファイルが比較されます。

p4 diff file#5

ファイルfileのクライアントワークスペースのリビジョンとディポに保存されているリビジョン5を比較します。

p4 diff @2017/05/22

クライアントワークスペースのすべての作業状態のファイルを、2017年5月22日午前0時の時点でディポに保存されていたリビジョンと比較します。

p4 diff -m 10 @2017/05/22

2017年5月22日午前0時の時点でディポに保存されていたリビジョンと比較するクライアントワークスペースの作業状態のファイルを、最初の10個に制限します。

p4 diff -du file

ファイルfileに関する比較を実行し、patch(1)ユーティリティに適した形式で出力します。

p4 diff -sr | p4 -x - revert

作業状態にあって変更されていないファイルをすべて取り消します。

この例では、p4 revert -a (たとえ変更がなくても衝突解決済みのファイルを変更とみなし、すべての未変更のファイルを元に戻す)とは異なり、クライアントワークスペースのファイルの内容が、ディポのファイルの内容と一致していれば元に戻ります。したがって、衝突解決済みであっても、ディポの内容と一致している場合を含みます。

最初のコマンドは、作業状態にあって変更されていないファイルをすべて表示します。 2番目のコマンドが(p4 -xを実行し、「-」として省略されている引数を標準入力から1行につき1つずつ受け取り)リストアップされた各ファイルを取り消します。

(このUNIX版のコマンドではパイプを使用します。 ほとんどのオペレーティングシステムは、上記の動作を連続して実行する同様の仕組みを備えています)。

p4に付ける-xオプションについて詳しくは、グローバルオプションを参照してください。

関連コマンド

ディポのファイルの2つのリビジョンを比較する

p4 diff2

1つのファイルのすべての内容を参照する

p4 print