p4 diff2

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

比較元のファイルと比較先のファイルは、コマンドラインを使用して指定することも、ブランチビューを使用して指定することもできます。

また、-Asオプションを使用して、2つのストリーム仕様を比較することもできます。

構文規則

            p4 [g-opts] diff2 [-doptions] [-Od -q -t -u] file1[rev] file2[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 [g-opts] diff2 [-doptions] -As streamname1[@change1] streamname2[@change2]
        

ディポの内容に関する説明

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

  • 何も引数を指定しなかった場合、現在のストリームがその親ストリームに対して 比較されます。
  • ファイル名を指定した場合、現在のストリーム内に存在するそのファイルが、 親ストリーム内に存在する同じファイルに対して比較されます。
注意

2つのファイルは、両方ともテキストファイルまたはUnicodeファイルでなければなりません。テキストファイルをUnicodeファイルと比較することはできません。

ヒント

p4 diff2Helixサーバで実行されるため、クライアント環境変数P4DIFFを無視します。

特定のファイルを指定する代わりに、ファイルパターンを指定することができます。 この場合、リビジョン指定子は指定してもしなくてもかまいません。 Helixサーバにより、指定したパターンに一致する各ファイルペアについて 差分が確認されます。 p4 diff2にファイルパターンを指定して実行する場合は、 引用符またはバックスラッシュを使用し、ファイルパターンをOSシェルから エスケープしてください。

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

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

summaryの有効な値とその意味は、次のとおりです。

  • content: ファイルリビジョンの内容が異なっている。
  • types: リビジョンの内容は同じであるが、 ファイルタイプが異なっている。
  • identical: リビジョンの内容もファイルタイプも 同じである。

指定されたバージョンのfile1file2がどちらも存在しない場合は、 ヘッダのsummary<none>として表示されます。

ディポの内容に関するオプション

-b branchfrom[rev]to[rev]

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

-doptions

標準的なUNIXの差分オプションの1つで差分ルーチンを実行します。 これらのオプションの一覧については、 「使用上の注意点」を参照してください。

-Od

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

-q

差分比較の出力を最低限に抑えます。 file1file2がまったく同じである場合は、 出力として「file1 - no differing files」だけが表示されます。

-S stream [-P parent]

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

-t

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

-u

追加行と削除行を表示してunified出力形式を生成し、 データ内容をpatch(1)ユーティリティに対応させます。 相違箇所のあるファイルのみが含まれます。 ファイル名と日付は、 Helixサーバ構文のままになります。

g-opts

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

ストリーム仕様に関する説明

2つのストリーム仕様を比較することができます。例えば、変更1myStreamと変更2yourStreamを比較するには、以下のように指定します。

p4 diff2 -As myStream@1 yourStream@2

また、保留中のストリーム仕様を比較するには、以下のように指定します。

p4 diff2 -As myStream@=1 yourStream@=2

ストリーム仕様のオプション

2つのストリーム仕様を指定して相互に比較することができます。

-doptions

標準的なUNIXの差分オプションの1つで差分ルーチンを実行します。 これらのオプションの一覧については、 「使用上の注意点」を参照してください。

-As

このオプションは、2つのストリーム仕様を指定して相互に比較する場合に使用します。このオプションは、ストリーム名とともに指定することも、特定のチェンジリスト番号のストリーム名とともに指定することもできます。

警告

制限事項: このオプションを使用する場合は、ストリームパスに対するlistアクセス権以上の権限が必要になりますが、プロテクションテーブル内のそれ以外の項目については、マイナス符号(-)を含めてすべて無視されます(通常は、マイナス符号によって操作がブロックされます)。

g-opts

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

使用上の注意点

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

はい

いいえ

比較対象の両方のファイルに対するreadアクセス権が必要になります。

-Asオプションを使用する場合は、listアクセス権が必要になります。

  • 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 file1file2

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

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

    ... files differ ...

    一致しない場合は、上記の行が表示されます。

  • -b branch[[fromfile[rev]]tofile[rev]]オプションを使用すると、 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

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

p4 print