Skip to content

v0.3.1 — repository polish

Choose a tag to compare

@BangRocket BangRocket released this 03 Jun 17:45
· 204 commits to main since this release

Polish pass on the repository/VCS layer (v0.3.0).

Fixed

  • Correctness — detached HEAD: committing on a detached HEAD no longer silently clobbers main. It advances HEAD itself and leaves all branches untouched; commit/checkout now report when you're detached.
  • Robustness — dedup: the canonical form now sorts NBT compound keys recursively (lists preserved). Two semantically-identical chunks that differ only in key order now dedup to a single object instead of being stored twice.
  • Performance — re-commit cache: a per-repo cache maps a chunk's compressed-payload hash to its stored object hash, so re-committing a mostly-unchanged world skips decoding the unchanged chunks. Measured ~7× faster re-commit on the example world (0.54s → 0.08s). Commit still verifies the object exists before trusting a cache hit; status reads the cache but never writes it.

Tests

58 (was 55): detached commit keeps main put; reordered-key compounds hash identically; re-commit adds no objects and matches HEAD. Verified end-to-end on the real world — re-commit is a fast no-op and checkout still round-trips clean.

Deliberately deferred (documented in README)

hardlink/reflink for the apply copy; delta-packed objects; remotes; in-place conflict resolution; criss-cross merge-base; and addressing NBT keys that contain literal ./[.