p4 diff

ワークスペースとディポの内容を比較するdiffユーティリティです(2つのディポパスの比較方法については、「p4 diff2を参照)。ストリーム仕様を比較することもできます。

構文規則

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

説明

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

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

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

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

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

ヒント

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

ストリーム仕様の比較

p4 [g-opts] diff [-doptions] -As [streamname[@change]]と指定すると、プライベート編集されたストリーム仕様を、同じストリーム仕様の別のバージョンと比較することができます。このように指定するには、使用しているクライアントワークスペースが指定のストリームに関連付けられていて、ストリーム仕様が編集用としてプライベートにオープンされている必要があります。

ワークスペースの内容に関するオプション

-doptions

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

-f

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

-m max

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

-Od

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

-soptions

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

-t

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

g-opts

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

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

-doptions

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

-As

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

警告

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

g-opts

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

使用上の注意点

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

はい

いいえ

read

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

  • 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形式の差分が指定されます。

  • patch(1)で使用するために-duオプションで生成される 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オプションについて詳しくは、 「グローバルオプション」を 参照してください。

ストリーム仕様の例

p4 diff -As

p4 diff -As myStream

p4 diff -As myStream@have

作業中のストリーム仕様と、 そのストリーム仕様のhaveバージョンとの差分
p4 diff -As myStream@head 作業中のストリーム仕様と、 そのストリーム仕様の最新バージョンとの差分
p4 diff -As myStream@1 作業中のストリーム仕様と、 そのストリーム仕様の変更1のバージョンとの差分
p4 diff -As myStream@=1 作業中のストリーム仕様と、 そのストリーム仕様の変更1の保留バージョンとの差分

関連コマンド

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

p4 diff2

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

p4 print