Hit enter to search

Microsoft announces the Git Virtual File System

Author Avatar
Christophe Clementi
Software Engineer, EASI

Here at EASI, we are heavy users of Git as version control system. Its flexibility allows multiple users to work on the same codebase, and it's easy to have an history of all the changes that occured in a project.

Git works great for small-to-medium size projects, but can end-up very slow when having big repositories with sometimes million files to track.
Microsoft faced that issue with the codebase of Windows, containing over 3.5 million files spanned over 270Gb. The git client was never designed to work with repos that big, leading to a "git status" command that takes 10 minutes to run, or a "git clone" taking over 12 HOURS.

Microsoft's attempt to improve that workflow is by introducing a new file system, GVFS (for Git Virtual File System), which virtualizes the file system beneath your repo and makes it appear as though all the files in your repo are present, but in reality only download a file the first time it is opened. Since, in that kind of enormous project, nobody is building the whole source tree but rather small modules at a time, they only need the portion of code they're working on. And since all of this is handled at the file system level, your IDEs and build tools don't need to change at all.

And the numbers are quite impressive : a "git clone" goes from 12+ hours to a few minutes, and a "git status" from 10 minutes to 4-5 seconds.
GVFS is still in progress, but Microsoft is open sourcing the client code at https://github.com/Microsoft/gvfs. If you want to test it, keep in mind that this still relies on pre-release file system driver.

SOURCE : https://blogs.msdn.microsoft.com/visualstudioalm/2017/02/03/announcing-gvfs-git-virtual-file-system/

Current job openings

Sign up to our newsletter

Follow us


Share this article