fangorn/ex_git_objectstore
public
ref:726fbbcf1ee0a54153160d6e485fad116e5bc8f3
Add pack protocol: pkt-line, pack writer, receive-pack, upload-pack
Phase 6 of ex_git_objectstore. Implements:
- PktLine: encode/decode pkt-line format with flush/delim/sideband support
- Pack.Writer: generate packfiles + .idx v2 from object lists
- ReceivePack: server-side state machine for git push (ref advertisement,
command parsing, pack ingestion, ref updates, status report)
- UploadPack: server-side state machine for git clone/fetch (ref
advertisement, want/have negotiation, pack generation with sideband)
Also fixes Pack.Reader decompress_data to handle trailing data from
sequential packfile parsing using binary-probed compressed length.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
SHA:
726fbbcf1ee0a54153160d6e485fad116e5bc8f3
Author:
Cole Christensen <cole.christensen@macmillan.com>
Date:
2026-02-10 08:00
Parents:
3b5c899
10 files changed
+1665
-37
| Type | ||
|---|---|---|
|
|
lib/ex_git_objectstore/object.ex | +20 −0 |
|
||