NixOS の configuration.nix や Nix Flake の flake.nix をリファクタした時などに、リファクタする前後で Nix のコードに実質的に差分が無いことを確認したくなることがあります。
Nix derivation のハッシュ値が変わらなければ差分がないことは明らかですが、ソフトウェアのコマンドライン引数の順番を変更した場合など、ハッシュ値は変わってしまっても実質的に差がないこともあります。
このような場合には nix-diff が便利です。
nix-diff は 2 つの Nix derivation や store path を比較して差分を表示してくれるツールです。以下のように、比較したい 2 つの store path を指定して使います:
nix-diff \
/nix/store/wv3vffx2irjsglzzgypg75h37kwin3ds-nixos-system-anise-25.11.20260526.25f5383 \
/nix/store/6fldz88m2nra763apzrcxz1xyhihajhd-nixos-system-anise-25.11.20260526.25f5383
例えばこの Minikube のパッチの適用前後では以下のような差分が表示されます。