Git & Version Control

差分ビューア手元のパッチを読み解く

統一形式のパッチを入力し、変更前後の行番号を確認しながらファイルを移動できます。

差分ビューア

パッチ入力

変更内容

パッチはこのブラウザー内で処理します。アップロード、リポジトリへのアクセス、パッチの実行は行いません。

表示設定

上限はUTF-8で1 MiB、20,000行、200ファイルです。パスの大文字小文字は区別しません。

入力が変わりました。再解析すると書き出せます。

絞り込みやページ分割に関係なく、書き出しはパッチ全体または概要全体が対象です。

差分ビューアは、レビュー用のパッチファイルだけが届き、リポジトリや変更前後の全ファイルを用意できないときに役立ちます。添付された変更記録をそのまま読み進められます。

比較をやり直すために二つのファイルを復元する必要はありません。どのハンクがどのファイルに属するのかを整理し、元の追加行と削除行を保持します。

差分ビューアを使う理由

既存のパッチから、確認したいファイルへ移動できます。

前後の行番号を同時に確認

差分ビューアはunified diffの行番号を左右に分けます。連続する削除と追加を出現順に並べ、共通の文脈行は両側に表示します。パッチにないソース行を推測して補いません。

一つのパッチがファイルツリーと削除・追加の二列に展開される図。

絞り込んでも全体を保持

変更前と変更後のどちらのパスでも検索できます。ファイルを絞り込んでも全体の集計と書き出し対象は変わりません。表示中の一部分だけを誤って保存することを防ぎます。

ファイルツリーで一つの文書を選び、元のパッチ全体を横に残した図。

範囲の読み方と表示の選び方

01

色のない差分を用意する

git diff --no-colorで出力するか、対になったファイルヘッダーを持つ統一差分を使います。メール形式の場合は、元のリポジトリから裸の差分を出力し直してください。

  • ローカル読み込みはUTF-8です。既存の入力を置き換える前にプレビューが出ます。
02

行の順序か並列表示かを選ぶ

左右表示は連続する削除行と追加行を順番に対応させます。削除と挿入の正確な順番を読みたい場合は統合表示に切り替えます。

  • 自動解析をオフにすると、Ctrl/Cmd + Enterで現在の入力を解析できます。
03

全体の件数を確認する

選択したファイルだけでなく、全体のファイル数、ハンク数、テキストの増減を確認します。バイナリ表示は別に数えるため、テキスト行数と混同しません。

  • 絞り込みと分割表示は、コピーや保存の対象を減らしません。

ファイル情報とハンクを一緒に確認

名前変更やモードも残す

追加ファイルの旧側、削除ファイルの新側には/dev/nullが現れます。名前変更、コピー、権限モードだけの変更も、テキストハンクがなくても確認できます。Gitが引用符で表すパスは読みやすく復号します。

宣言された行数を照合

@@ヘッダーの旧側と新側の行数を、文脈行・追加行・削除行の実数と照合します。途中で切れたハンクや重複する範囲は拒否し、入力上の行を示します。数を自動修正して通すことはしません。

集計をJSONで持ち出す

概要には全ファイルのパス、状態、指定されたモード、増減行数とハンク数を含めます。バイナリの変更は別項目なので、テキストの増減がゼロでも内容が同一だとは扱いません。

表示できる内容と検証の限界

適用できるかは別の検証
対象ファイルや基準コミットは読み込みません。git apply --check、ステージング、コミットは実行できません。形式が正しくても、対象リポジトリへ適用できるとは限りません。
二者間の裸の統一差分のみ
git format-patchのメール封筒、mbox、combined diff、raw/name-only/stat出力、端末の色指定を拒否します。二つの全文を比較して差分を新規作成するツールではありません。
バイナリは変更情報のみ
Binary files … differは表示しますが、GIT binary patchのliteral/deltaデータは拒否します。画像の見た目やバイナリ内容、ペイロードの正しさは確認できません。
入力上限と分割表示
UTF-8で1 MiB、20,000物理行、200ファイルのすべてを満たす必要があります。超過すると全体の解析を止めます。ナビゲーションは50ファイル、差分表示は100行ずつ増やせます。
元の変更記録を書き換えない
空白無視、逆パッチ、自動修復、構文強調、意味解析は行いません。パス検索は大文字小文字を区別しない部分一致で、正規表現やglobではありません。省略された文脈は復元できません。

差分ビューアのよくある質問

サイズ制限はありますか?

上限はUTF-8で1 MiB、20,000行、200ファイルです。どれかを超えると一部だけを解析せず、入力全体を拒否します。元のリポジトリで対象ファイルを絞ったパッチを出力してください。

unified diffや.patchファイルを貼り付けてここで読めますか?

はい。対になった---と+++のヘッダーを持つunified diffを入力できます。.patchという拡張子だけでは形式を判断せず、実際の内容を検証します。

無料ですか? 登録は必要ですか?

無料で利用でき、登録は不要です。ローカルファイルの読み込み、パスの絞り込み、元のパッチとJSON概要の保存も同じページで行えます。

パッチとは何で、本当に適用できますか?

パッチは前後の変更を記録したテキストです。このページは読むための道具で、適用は実行しません。適用可能性は対象リポジトリで別途確認する必要があります。

どちらかのテキストがどこかへ送られますか?

入力するのは二つの全文ではなく一つのパッチです。内容はアップロードせず、このブラウザー内で読み取ります。URLからの取得や共有リンクの保存機能はありません。

解決しませんでしたか?

次のレビューを始める

差分ビューアにパッチを開き、変更されたパスと行数を確認して、元の記録を全体のまま保存しましょう。

形式の検証はリポジトリへの適用可能性を保証しません。