YAML差分比較ツール
2つのYAMLドキュメントを比較して、変更された箇所を正確に確認できます。追加・削除・変更されたキーがそれぞれのパス付きで表示され、正規化したYAMLの行単位のunified diffも得られます。構造的な比較ではインデント、引用符、フロー形式とブロック形式の違いを無視し、複数ドキュメントのストリームにも対応します。すべてブラウザ内で動作します。
入力
オプション
リストが実際には順序を持たない集合で、並べ替えを変更とみなしたくない場合は「順序を無視」を使ってください。
1と"1"、trueと"true"を同一視します。片方のファイルだけ値を引用符で囲んでいる場合に便利です。
出力
| 項目 | 値 |
|---|---|
| No data yet | |
パスごとの差分一覧 — + 追加、- 削除、~ 変更。
両ドキュメントをまず2スペースインデントで再シリアライズするため、書式の違いはノイズになりません。
Enter both documents to see the differences.
ガイド
YAMLファイルの2つのバージョン — 変更前後のKubernetesマニフェスト、2つのCIパイプライン設定、環境ごとのdocker-compose.yml — を貼り付ければ、何が違うのかを正確に確認できます。この無料オンラインのYAML差分比較ツールは、両方のドキュメントをプレーンテキストではなくパース済みのYAMLとして読み取ります。そのため、ブロックのインデントをずらしたり、値を引用符で囲んだり、ブロック形式からフロー形式に書き換えたりしても、変更としては表示されません。差分ごとのパスが分かる構造レポートに加え、パッチファイルにコピーできる正規化済みのunified diffも得られます。すべてブラウザ内で動作し、アップロードも登録も不要です。
使い方
- 元のファイルをYAML Aに、変更後のファイルをYAML Bに貼り付けます。
- リスト項目の比較方法を選びます — 位置順(デフォルト。コンテナの引数のような順序付きリスト向け)または順序を無視(タグや許可ホストのように、実態が集合であるリスト向け)。
- 片方のファイルだけ値を引用符で囲んでいる場合は型の違いを無視をオンにすると、
8080と"8080"が同一視されます。 - サマリーで件数を、構造diffでパスごとの変更一覧を、unified diffで行単位の差分を確認します。
入力するたびに出力は自動更新されます。
構造diffは何を「変更」として判定するのか?
両ファイルをパースし、その結果得られた2つの値を一緒に走査します。マッピングでは片側にしか存在しないキーを追加・削除として報告し、両側にあるキーには再帰的に入り込みます。シーケンスでは項目を1つずつ比較し、スカラーでは値を比較します。各エントリには+(追加)、-(削除)、~(変更)の接頭辞と、spec.template.spec.containers[0].imageのようなドット区切りのパスが付くため、400行のマニフェストの中から必要な行へ直接ジャンプできます。
「構造」diffはなぜプレーンなテキストdiffより優れているのか?
YAMLのテキスト上の違いのほとんどは、本当の違いではないからです。ports: [80, 443]と2行のブロックシーケンスは同じデータですし、name: appと"name": appも同じです。インデントを4スペースから2スペースに変えただけのファイルも同様です。行単位のdiffはこれらすべてを報告します。このツールはどれも報告せず、ファイルを受け取る側に実際に届く変更だけを示します。
では、なぜunified diffもあるのか?
パッチやコードレビューに貼るのは行単位のビューだからです。これを有用に保つため、両ファイルはまずパース済みの形から固定2スペースインデントで再シリアライズされ、その正規化済みテキストがdiffされます — そのためパッチには書式のノイズではなく、実際の編集が現れます。
複数ドキュメントのファイルにも対応していますか?
はい。---で区切られたストリームはドキュメントごとに順番に比較され、パスにはdoc[2].…という接頭辞が付くので、どのドキュメントの差分かが分かります。どちらかの側に余分なドキュメントがある場合は、追加・削除として報告されます。
コメントはどう扱われますか?
コメントは比較されません。コメントはデータを読む側にとって何の意味も持たず、両方のビューはコメントを保持しないパース済みドキュメントから計算されるためです。
データのプライバシーは?
完全に安全です。パースも差分計算もすべてブラウザ内で行われ、ファイルがアップロード・記録・保存されることはありません。本番マニフェストを比較するときにも安心です。
YAMLのdiff以外が必要な場合
JSONの比較にはJSON Compareツールを、XMLにはXML Diff Comparatorをご利用ください。ファイルがパースできない場合は、YAMLバリデーターが構文エラーの場所を指し示します。
Use it from code
From 3 credits per callREST API
curl -X POST https://api.iotools.cloud/v1/tool/yaml-diff-comparator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"yamlA": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n …",
"yamlB": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n …",
"seqOrder": "position",
"looseScalars": ""
}'Swap in your own key from your account. The tool's fields are the body — no wrapper.
Ask an AI agent
Use the IOTools `yaml-diff-comparator` tool (YAML Diff Comparator) on this input:
YOUR_INPUT_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.