Repository navigation
v0.6.0 — git-likeness Tier 2 (remotes, reflog, cherry-pick, gc)
Takes mcadiff from a local VCS toward a distributed one — sync world history between repositories (e.g. push backups to another drive/NAS). No network yet; remotes are repository directories, and because objects are content-addressed, transfer copies only what the other side lacks.
New
- Remotes (filesystem):
clone,remote add,fetch,push.pushis fast-forward-checked (--forceoverrides);fetchpopulatesrefs/remotes/<remote>/*(resolvable asorigin/main). reflog— HEAD movement history (logged on commit).cherry-pick <commit>— apply one commit onto HEAD via the 3-way engine.gc— prune objects unreachable from any ref.
Fixes (found via Tier-2 testing)
- Merge dropped a one-sided region: a region present on only one side (including an empty region like a fresh
poi/) was lost by the manifest 3-way merge. Region existence is now resolved per-region (added / deleted / delete-modify conflict). - Nondeterministic classification hardened: a rare transient parse failure during the parallel commit could silently downgrade a valid NBT
.datto an opaque blob, making manifests nondeterministic. Parsing now retries before falling back.
72 tests (was 67): clone+push fast-forward, fetch remote-tracking refs, gc prunes unreachable objects, reflog records commits, merge carries a one-sided/empty region.
Deferred (by design)
A staging index and an in-place conflict-resolution workflow don't map cleanly to whole-world snapshots; network transport (ssh/http) and delta/packfiles remain future work.