ref:main

Add object alternates support #12

open Opened by cole.christensen@gmail.com

Links

No links yet.

Problem

No support for git object alternates (objects/info/alternates). Each repository must contain its own copy of every object, even when repos share history (forks, related projects).

Impact

  • Fork-heavy hosting wastes storage (each fork duplicates the entire object store)
  • Cannot implement efficient fork networks
  • Monorepo sharding patterns unsupported

Acceptance Criteria

  • Repos can reference alternate object stores for reads
  • Object resolution checks local store first, then alternates
  • Alternates are configurable per-repo
  • Works with filesystem backend (S3 support optional)
  • GC is alternate-aware (doesn’t prune objects reachable via alternates)
  • Tests covering read-through, missing objects, circular alternate chains