p4 diff2

概要

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

構文


p4 [g-opts] diff2 [-doptions] [-Od -q -t -u] file1[revfile2[rev]
p4 [g-opts] diff2 [-doptions] [-Od -q -t -u] -b branch [[fromfile[rev]] tofile[rev]]
p4 [g-opts] diff2 [-doptions] [-Od -q -t -u] -S stream [-P parent]
                  [[fromfile[rev]] tofile[rev]]

解説

p4 diff2は、Perforceサービスに組み込まれた差分ルーチンを使用して、ディポ内のファイルの2つのリビジョンを比較します。これらのリビジョンは、通常は同じファイルの2つのバージョンですが、全く別々のファイルのリビジョンであることも可能です。ファイルリビジョンがファイル引数として明示されていない場合は、最新リビジョンが使用されます。

p4 diff2は環境変数P4DIFFによって指定された差分プログラムを使用しません。p4 diff2が使用する差分アルゴリズムは、共有Perforceサーバのホストマシン上で実行され、常にサービスに組み込まれた差分ルーチンを使用します。

ファイルを特定する代わりに、ファイルパターンを引数に指定することができ、リビジョン指定子も使えます。このため、Perforceは与えられたパターンに適合する個々のファイルの組について、何度も差分比較を実行できます。p4 diff2にファイルパターンを付けて実行する場合は、クォーテーションマークまたはバックスラッシュを用いてファイルパターンをOSシェルからエスケープし、2つのファイルパターンの中のワイルドカードを一致させてください。

Perforceは、次のような形式のヘッダが前に付加されたUNIXの差分フォーマットで差分を提示します。ヘッダーは次のようにフォーマットされます。

==== file1 (filetype1) - file2 (filetype2) ==== summary

summaryの取り得る値とその意味は次のとおりです。

  • content: ファイルリビジョンの内容が異なります。

  • types: リビジョンの内容は同じですが、ファイルタイプが異なります。

  • identical: リビジョンの内容もファイルタイプも同じです。

file1またはfile2のいずれかが指定のリビジョンに存在しない場合は、ヘッダのsummaryの位置に<none>と表示されます。

オプション

-b branch from[rev] to[rev]

ブランチマッピングを用いて2つのブランチされたコードラインのファイルの差分比較を行います。比較するファイルは、fromまたはtoのファイル指定によるファイルパターンで制限することができます。

-doptions

標準的なUNIXの差分オプションのサブセットの1つで差分ルーチンを実行します。標準差分オプションの種類については、「使用上の留意点」のセクションを参照してください。

-Od

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

-q

差分比較の出力を最低限に抑えます。ヘッダのみを表示します。file1file2が同一である場合には、出力に「file1 - no differing files」としか表示しません。

-S stream [-P parent]

ストリームをその親と比較します。設定された親以外のストリームと比較する場合は、-Pを指定します。

-t

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

-u

追加行と削除行を表示して統一出力フォーマットを生成し、データ内容をpatch(1)ユーティリティに対応させます。相違箇所のあるファイルのみが含まれます。ファイル名および日付はPerforce構文のままになります。

g-opts

“グローバルオプション”」を参照してください。

使用上の留意点

ファイル引数にリビジョン指定子を使えるか?

ファイル引数にリビジョン範囲を使えるか?

最低限必要なアクセスレベル

使用可

使用不可

比較する双方のファイルに対してreadアクセス権限が必要

  • p4 diff2がサポートしている差分オプション

    オプション

    名前

    -dn

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

    -dc[num]

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

    -ds

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

    -du[num]

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

    -dl

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

    -db

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

    -dw

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

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

    p4 diff2 -dub file1 file2

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

  • patch(1)を使用するために-duオプションで生成されるunified形式のヘッダ行では、差分ファイルをPerforceシンタックスで表示します。ローカルシンタックスではありません。

  • p4 diff2binaryファイルの差分比較に使用したときは、一致しなければ、

    ... files differ ...
    

    という行が表示されます。

  • オプション-b branch [[fromfile[rev]] tofile[rev]]は、一見すると不適切のように見えます。ブランチマッピングはfromfilesからtofilesまでマッピングしているので、fromfiletofileの両方のファイルパターンを指定する必要はありません。しかし、この構文を使うと、fromfileのファイルパターンとtofileのリビジョン、またはfromfileのリビジョンとtofileのファイルパターンを指定することが可能になります。

  • ファイル内のRCSキーワードはp4 diff2によって拡張されません。

p4 diff2 -ds file#1 file

ファイルfileの最初のリビジョンとその最新リビジョンを比較し、どのかたまり(チャンク)が追加され、削除され、変更されたかのサマリを表示します。

p4 diff2 file@34 file@1998/12/04

チェンジリスト34のサブミット後にディポにあったfileのリビジョンと、1998年12月4日午前0時時点のディポのリビジョンの差分比較を行います。

p4 diff2 //depot/rel1/... //depot/rel2/...#4

//depot/rel1のすべてのファイルの最新リビジョンと//depot/rel2のすべてのファイルのリビジョン4を比較します。

p4 diff2 //depot/rel1/* //depot/rel2/...

認められていません。両方のファイルパターンのワイルドカードが一致する必要があります。

p4 diff2 -b branch2 //depot/rel2/...#2 @50

//depot/rel2/...のファイルのリビジョン2と、そこからブランチマッピングbranch2によってブランチされたファイルのチェンジリスト50におけるリビジョンとを比較します。

関連コマンド

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

p4 diff

ファイルの全内容を参照する。

p4 print