Microsoft's 270GB Windows Git Repo Demanded A Virtual File System. Now, It's Open Source

Image: Supplied

For small-medium software companies, scaling is usually not a problem. Microsoft, however, doesn't have that luxury. For instance, the developer is an enthusiastic user of Git, with many of its projects available on GitHub including .NET Core, the Chakra Javascript engine and Visual Studio Code. When it comes to the Windows source... Git doesn't scale and so, Microsoft was forced to create its own virtual file system for Git — which it's just open-sourced — to streamline repo operations.

As principal program manager Saeed Noursalehi explains, using Git in its purest form for the 270GB Windows repository became impractical:

For example, the Windows codebase has over 3.5 million files and is over 270 GB in size. The Git client was never designed to work with repos with that many files or that much content. You can see that in action when you run "git checkout" and it takes up to 3 hours, or even a simple "git status" takes almost 10 minutes to run. That’s assuming you can get past the "git clone", which takes 12+ hours.

These sorts of delays on any project would soon become untenable, let alone one as critical as Windows itself. Microsoft's solution was to create a virtual file system, on top of Git, to minimise the work Git needs to do for developers to work on the codebase:

Today, we're introducing GVFS (Git Virtual File System), which virtualises the file system beneath your repo and makes it appear as though all the files in your repo are present, but in reality only downloads a file the first time it is opened.

And it works. Really well, according to Noursalehi:

...clone now takes a few minutes instead of 12+ hours, checkout takes 30 seconds instead of 2-3 hours, and status takes 4-5 seconds instead of 10 minutes. And we're working on making those numbers even better.

With GVFS open source, other developers are free to benefit from Microsoft's work, as well as contribute to it.

While the number of software houses that can sympathise with Microsoft's Git issues are few, I'm sure they'll very much appreciate the productivity boost GVFS represents.

If you'd like to check it out, the GitHub repo is publicly available under Microsoft's account.

Announcing GVFS (Git Virtual File System) [MSDN]


Comments

Be the first to comment on this story!

Trending Stories Right Now