ノード:diff,
次:edit,
前:commit,
上:Commands And Options
diff
Synopsis: diff [OPTIONS] [FILES]
- Alternate names - di, dif
- Requires - Working copy, repository
- Changes - Nothing
2つのリビジョン間の相違を表示します(Unix の diff 形式で)。オプションな
しで起動した場合は、リポジトリのベースリビジョンと、(おそらくは未コミ
ットの)作業コピーの内容を比較します。ベースリビジョンとは、その
作業コピーをリポジトリから取得した時点のリビジョンを指します。誰か他の
人が変更をコミットしたにもかかわらずこの作業コピーでアップデートを行っ
ていない場合、リポジトリ中にはベースリビジョンより新しいリビジョンが存
在する、ということに注意してください。(rdiffも参照のこと)
Options:
- -D DATE - DATE 時点での最新リビジョンとの diff を取ります。リビジョン
ではなく日付で指定する以外は -r REV と同様です。(詳しくは -r を参照の
こと)
- -k MODE - diff 中の RCS キーワードを MODE に従って展開します。(指定で
きるモードについてはこの章の Keyword Substitution (RCS Keywords)
節をご参照下さい。)
- -l - ローカル。引数にファイルが指定されていない場合、このオプションは
カレントディレクトリ内のファイルの diff を取り、サブディレクトリを降り
ていきません。
- -R - 再帰的(リカーシブ)。このオプションは -l の反対です。デフォルトの
動作はこうなっていますので、このオプションを指定するのは .cvsrc ファイ
ルでの -l 指定を打ち消したいときくらいだと思います。
-
-r REV or -r REV1 -r REV2 - 指定したリビジョンに対して(あるいは指定し
たリビジョン間で)の diff を取ります。 -r オプション1つの場合はリビジョ
ン REV の作業コピー内の該当ファイルに対しての diff を取ります(ですから
複数ファイルの diff を取りたい場合、たいてい REV をタグ指定にします)。
-r オプション2つの場合は各ファイルについて REV1 の REV2 に対しての
diff を取ります(作業コピーはこの場合無関係です)。2つのリビジョン指定は
どのような順序にもできます。REV1 が REV2 より古いリビジョンである必要
はありません。出力は変更の方向を反映します。-r オプション無しの場合は
作業コピーとそのベースリビジョンの相違を表示します。
Diff 互換オプション
今まで述べたオプションに加え、cvs diff は GNU バージョンの標準 diff プ
ログラムと共通のオプションを指定できます。このようなオプションの全一覧
を、よく使われるものについては説明をつけて下記に示します。(その他につ
いては GNU diff のドキュメントをご参照下さい。)
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9
--binary
--brief
--changed-group-format=ARG
-c
-C NLINES
--context[=LINES]
-e --ed
-t --expand-tabs
-f --forward-ed
--horizon-lines=ARG
--ifdef=ARG
-w --ignore-all-space
-B --ignore-blank-lines
-i --ignore-case
-I REGEXP
--ignore-matching-lines=REGEXP
-h
-b --ignore-space-change
-T --initial-tab
-L LABEL
--label=LABEL
--left-column
-d --minimal
-N --new-file
--new-line-format=ARG
--old-line-format=ARG
--paginate
-n --rcs
-s --report-identical-files
-p
--show-c-function
-y --side-by-side
-F REGEXP
--show-function-line=REGEXP
-H --speed-large-files
--suppress-common-lines
-a --text
--unchanged-group-format=ARG
-u
-U NLINES
--unified[=LINES]
-V ARG
-W COLUMNS
--width=COLUMNS
下記は cvs diff でよく使用される GNU diff オプションです。
- -B - 単なる空行(空白文字しか含まない行)の挿入削除については無視します。
- -b - 空白文字の量の違いについては無視します。このオプションでは連続し
た空白文字をすべて同等とみなし、行末の空白文字については無視します。も
う少し技術的なことを言うと、このオプションでは入力中の連続した空白文字
を1文字の空白(スペース)に圧縮し、各行の行末空白文字を削除し、それから
diff を取ります。(-w を参照のこと)
- -c - コンテキスト diff の形式で出力します。相違ひとつひとつに3行ずつ
コンテキストをつけます(patch プログラムが少なくとも2行のコンテキストを
必要とするためです)。
- -C NUM - context=NUM - -c と同様ですが、コンテキストを NUM 行つけま
す。
- -i - 大文字小文字の区別を無視して比較します。ある文字の大文字と小文字
を同一の文字として取り扱います。
- -u - ユニファイド diff 形式で出力します。
- -w - 空白文字の違いをすべて無視します。片方に空白があって、もう一方に
空白がない場合でも無視します。 -b の強化バージョンです。