Skip to content

v0.1.1 — Git coexistence guard

Choose a tag to compare

@flawme flawme released this 31 Aug 12:34
· 26 commits to master since this release

Varn now protects its own object store from accidental git staging.

The problem this fixes

.varn/ holds tens of thousands of content objects. If your project is also a git repository, a blind git add -A staged the entire store — a real workflow accident, and an easy one to hit.

What's new

  • Automatic store guardvarn init now creates .varn/.gitignore containing *. Git applies .gitignore files to their own directory and below, so the whole store is ignored without Varn touching anything outside .varn/.
  • varn init --gitignore — optionally adds .varn/ to the enclosing repository's root .gitignore (created if missing, idempotent, fails with an actionable error outside a git repo).
  • Legacy store warningvarn init and varn checkpoint warn (text and JSON warnings) when the store sits in a git work tree and is not excluded from git, with a copy-pasteable fix.
  • Guard backfillvarn migrate adds the missing guard to stores created before this release; --dry-run reports without writing.
  • install.sh — one-line installer: curl -fsSL https://raw.githubusercontent.com/flawme/varn/main/install.sh | sh
  • Checksums — every release publishes SHA256SUMS.txt plus per-asset .sha256 files.

Upgrade notes

Existing stores: run varn migrate once to add the guard. No storage-format change; checkpoints remain fully compatible.

Verification

  • 298 tests passing (cargo test)
  • cargo clippy --all-targets --all-features -- -D warnings clean
  • cargo fmt --check clean
  • End-to-end smoke test: git status --porcelain shows no .varn entries in a Varn-managed git repository

Full changelog: https://github.com/flawme/varn/blob/master/CHANGELOG.md