```
$ snapdir diff --help
Compare two sides, each a set of manifests, reporting file-level differences — reading MANIFESTS ONLY
Usage: snapdir diff [OPTIONS]
Options:
--id <ID>
Pin each side to this single manifest id (else the whole store is unioned)
-q, --quiet
Suppress stderr banners and the live progress line
--color <WHEN>
When to colorize progress output: auto, always, or never
Possible values:
- auto: Color when attached to a TTY and `NO_COLOR` is unset (default)
- always: Always emit color
- never: Never emit color
[default: auto]
--from <REF>
FROM-side ref: a manifest-store URI (enumerated) and/or, with `--id`, a single pinned manifest. Repeatable; refs are UNIONED into the FROM side
--no-progress
Disable the live progress line (transfers still run)
[env: SNAPDIR_NO_PROGRESS=]
--to <REF>
TO-side ref: a manifest-store URI (enumerated) and/or a pinned manifest. Repeatable; refs are UNIONED into the TO side
--all
Also emit unchanged (equal) paths
--verbose
Enable verbose output. Honored by the transfer commands (push/fetch/pull/checkout/stage/sync emit an effective-config banner and CACHED/SAVED notices) and verify-cache (purge notices); inert elsewhere
--json
Emit a JSON array of `{status, path}` objects instead of porcelain
--exit-code
Exit 1 when any difference is found (git `diff --exit-code` semantics); the default exits 0 regardless
--on-conflict <POLICY>
Policy for an intra-side path collision (same path, differing content unioned on one side)
Possible values:
- error: A differing-content collision is a hard error (default)
- last-wins: The last ref contributing the path wins
[default: error]
-h, --help
Print help (see a summary with '-h')
-V, --version
Print version
```