fangorn/ex_git_objectstore
public
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