{ }JSONKit.tools

YAML 差分ツール — 2 つの YAML を比較

2 つの YAML 文書を、書き方ではなく意味で比較します。引用符、インデント、キーの順序、アンカーは関係なくなり、本当の違いだけが現れます。

左の YAML

右の YAML

差分

–

このツールについて

2 つの YAML ファイルは、見た目がまるで違っていても同じデータを持っていることがあります。キーの並べ替え、スカラーの引用符の有無、ブロック形式をフロー形式に書き換えたもの。マニフェストや CI 設定の行単位の差分がこれほど役に立たないのはそのためです。このページは両側を解析し、得られた構造を比較します。表示されるのはデータ上の違いです。その過程でコメントとアンカー名は消えます。どちらも解析を越えて残らないからです。

使い方

  1. 12 つの YAML 文書を左右のパネルに貼り付けます。
  2. 2左右・ツリー・リストのいずれかで結果を読み、矢印で変更点を移動します。
  3. 3「変更点のみ」を有効にして、変わっていない部分をたたみます。

よくある質問

›なぜ行単位ではなく構造で YAML を比較するのですか?

YAML には同じデータを書く方法がいくつもあるからです。引用符つきか裸のスカラーか、ブロック形式かフロー形式か、キーの位置の移動、インデントの変更 — テキスト差分はそのすべてを変更として塗ります。先に解析することで、報告されるのは本当の違いだけになります。

›コメントは比較されますか?

いいえ。コメントはデータではなく解析を越えて残らないため、編集しても差分は出ません。コメントを確認する必要があるなら、テキスト差分を併用してください。

›アンカーとエイリアスはどうなりますか?

比較の前に展開されるため、一度書いて二度参照した値は、展開後の値として比較されます。したがってアンカー名だけを変えても何も表示されません。

›YAML ファイルと JSON ファイルを比較できますか?

JSON → YAML のページで JSON 側を変換し、両方をここに貼り付けてください。あるいはその逆で、JSON 差分のページで比較します。中身は同じ比較です。

›Kubernetes のマニフェストに使えますか?

それがまさに定番の用途です。レンダリング済みのマニフェストとクラスター上のものを比べる場面こそ、キーの順序や引用符のノイズがテキスト差分を使い物にならなくするところです。