Skip to content

Support GVFS (Git Virtual File System) v1 protocol

Microsoft has built a new Git Virtual File System to support working with very big repos. GVFS allows for driver level just-in-time downloading of files as they are needed rather than downloading the whole repo upfront. GitLab should implement the GVFS Protocol so that Windows users can benefit from GVFS.

Note: GVFS is not yet available for Mac or Linux.

Proposal

Add support to GitLab for GVFS v1 protocol:

  • GET /gvfs/objects/{objectId}
    • Provides a single object in loose-object format
  • POST /gvfs/objects
    • Provides one or more objects in packfile or streaming loose object format
  • GET /gvfs/prefetch[?lastPackTimestamp={secondsSinceEpoch}]
    • Provides one or more packfiles of non-blobs and optionally packfile indexes in a streaming format
  • POST /gvfs/sizes
    • Provides the uncompressed, undeltified size of one or more objects
  • GET /gvfs/config
    • Provides server-set client configuration options

Not in scope: adding support to GVFS for Linux or Mac. See https://github.com/Microsoft/GVFS/issues/4

Links

Edited by James Ramsay (ex-GitLab)