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.