docs: confirm REF_DELTA thin-pack support #12

merged colechristensen cole.christensen@gmail.com wants to merge chore/close-ref-delta-issue into main
No CI

Summary

Docs-only cleanup. REF_DELTA resolution was already fully implemented; the README incorrectly listed it as a known limitation.

Closes #3

Current state

Full REF_DELTA + thin-pack support is in place:

  • Pack.Reader.parse/2 accepts :external_resolver keyword — wired through to resolve_ref_delta_base/6 which bifurcates in-pack vs. external lookup
  • ReceivePack.build_external_resolver/1 uses the repo as the resolver so `git push –thin` works against ReceivePack
  • @max_delta_depth 50 guards pathological chains
  • Two-phase + multi-pass batch resolution in resolve_delta_entries/4 handles REF_DELTAs that chain

Test coverage (already existed)

  • Unit: `test/ex_git_objectstore/pack/reader_test.exs` — “thin pack support” describe block
  • Integration: `test/ex_git_objectstore/integration/protocol_interop_test.exs` — “incremental push (thin pack with delta bases in repo)” uses real `git pack-objects –thin`

All 566 tests pass. No code changes.

Changes

  • `README.md` — remove stale REF_DELTA line from Known Limitations
  • `CHANGELOG.md` — elaborate the REF_DELTA entry under [Unreleased] to reflect full thin-pack support
Created Apr 17, 2026 at 17:11 UTC | Merged Apr 17, 2026 at 17:22 UTC by colechristensen cole.christensen@gmail.com