generated from block/oss-project-template
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
This is a high level description with a lot of detail left unanswered, but generally Git caching will consist of two complementary approaches:
- Periodic bare snapshots stored as tarballs in the cache.
- Git protocol aware proxy that can a) serve bundles using Git's
bundle-uriheader and b) serve packs directly from the local mirror.
The snapshots will be usable by a CLI tool separate from git, to allow the fastest possible unpacking, but will also be used by the proxy itself to keep a local bare mirror up to date for serving Git requests directly.
The Git protocol part of the solution will be used for those cases where either the cache CLI tool isn't used, or when doing incremental pulls. In this path, the upstream Git repository will be hit at most twice: at least once to find any missing local refs, then a possible second request to pull missing refs.
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
In Progress