GIT-005: single-stream serving — verbatim whole-log clone + a thin-pack builder for incremental fetch

Input

Context

Child of GIT-001; depends on GIT-002. With one OFS-only stream per shard, full-clone serving is trivial: the whole log IS a valid git pack sans framing, so blast it verbatim with a fresh PACK header + SHA-1 trailer (PSTRWrite, the existing stitcher). The hard case is the incremental fetch: a byte suffix from the client's have-frontier is NOT self-contained, because OFS_DELTA records near the tail can reference bases before the frontier. The current WIREBuildSegments (keeper/WIRE.c:319) tiles PACK bookmarks to ship a verbatim range — that relied on self-contained per-fetch batches, which one-stream dissolves (and whose count math caused GET-019). Add a real thin-pack builder that walks the wanted set and thinnifies the boundary. See PackLog, Keeper.

Goals

Constraints

WIP

Design decisions

TODOs

Branch on haves: empty → verbatim whole-log; non-empty → thin builder.

Blockers and bummers

Outcome