ZVM-DEDUPE(1)

πŸ“¦ version 0.9.4, in nixpkgs unstable

πŸ’… ZVM-DEDUPE(1) β€” the zvm dedupe glow-up

okay bestie, so this is a User Commands page from the ZVM manual, and it's all about zvm-dedupe β€” the little icon that hard-links identical files across your installed Zig versions so your disk doesn't get bullied. πŸ¦‹


✨ NAME ✨

zvm-dedupe β€” hard-link identical files across installed Zig versions, periodt.


πŸŽ€ SYNOPSIS πŸŽ€

zvm dedupe [version...]
zvm dedupe --auto on|off

🌸 DESCRIPTION 🌸

So here's the vibe: it hashes every regular file in the installed versions you give it (and legit all of them when you give it none) with SHA-256, then replaces the duplicates with hard links pointing into the content-addressed store at ~/.zvm/store/. πŸ’–

The way that patch releases of the same Zig series literally share almost every file except the compiler binary? Yeah β€” so this roughly halves the space two of them take. Releases further apart share less, ngl. Just how it is. ✨

Files only get merged when their content, permission bits and (on Unix-like systems) owner all match β€” because hard links share one inode, bestie, it's giving "one soul, many bodies." Symbolic links, empty files and setuid/setgid/sticky files are left alone. πŸ™ˆ Not touching those.

Each file is replaced by linking the store copy to a temporary name in the same directory and renaming that over the original β€” so an interrupted run never leaves a file missing. πŸ˜­πŸ‘‘ Run it again and it finishes the job; otherwise it changes nothing. Files that can't be hard-linked (another filesystem, or one without hard-link support) are left untouched and reported; they don't fail the run. Slay.

⚠️ A deduped file is shared: editing it in place changes it in every version that links to it. A later run detects store entries that no longer match their hash and stops sharing them, but it cannot undo the edit β€” reinstall with zvm install --force instead. No cap, be careful. πŸ’€

Store files that no installed version links to any more get removed by zvm-clean(1) and after zvm-uninstall(1). 🧚


πŸ”₯ OPTIONS πŸ”₯

  • --auto on|off β€” sets whether zvm-install(1) dedupes each newly installed version automatically, then bails out. Stored as autoDedupe in ~/.zvm/settings.json. Off by default. πŸ’…

⭐ EXAMPLES ⭐

zvm dedupe
zvm dedupe 0.15.1 0.15.2
zvm dedupe --auto on

🌈 SEE ALSO 🌈

zvm(1), zvm-clean(1), zvm-install(1), zvm-uninstall(1)


🫢 okay that's the whole page! This one's ZVM v0.9.4, dated October 2026 β€” go forth and dedupe, main character. πŸŽ€πŸ’œ

πŸ“¦ where this page comes from
  • nixpkgs unstable: zvm 0.9.4
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms