Skip to content

Virtual File System for Git: Enable Git at Enterprise Scale

License

Notifications You must be signed in to change notification settings

derrickstolee/VFSForGit

 
 

Repository files navigation

GSD

What does GSD Stand For?

It is just a combination of three letters. It could mean "Git Service Daemon" because we are monitoring your Git repo and keeping it up to date with the remote. It could mean "Get Stuff Done" because it keeps Git out of the way and just does what you need it to do.

What does GSD Do?

  • gsd clone <url> <dir> will create a local clone of the given url inside <dir>/src. Some config data will be in <dir>/.gvfs.

  • Your initial clone will check out the master branch and cause a bunch of blob downloads as you fill out the data. We will only download blobs as you need them in a checkout. This differs from VFS for Git in that there is no filesystem driver filling in files on-demand. This acts more like Git LFS.

What will GSD Do?

Here are some things we plan to do as we work on this project. These will likely be breaking changes as we go:

  1. Allow a clone to initialize a sparse-checkout file that is very small initially.

  2. Expand and contract the sparse-checkout on (user) demand.

  3. Automatically set up fsmonitor.

  4. Performance improvements around sparse-checkout.

  5. Remove the .gvfs metadata folder and put everything in Git config.

  6. Remove all logic from the GSD.Mount process and into GSD.Service.

  7. Allow batched requests from the read-object hook.

  8. Allow GSD.Service to monitor and maintain vanilla Git repos.

  9. Integrate fsmonitor with status caching.

Licenses

The VFS for Git source code in this repo is available under the MIT license. See License.md.

VFS for Git relies on the PrjFlt filter driver, formerly known as the GvFlt filter driver, available as a prerelease NuGet package.

About

Virtual File System for Git: Enable Git at Enterprise Scale

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 93.4%
  • Shell 2.6%
  • Objective-C 1.6%
  • C++ 1.0%
  • Inno Setup 0.8%
  • Batchfile 0.5%
  • C 0.1%