Git is a distributed revision control system which is used in software development involving many people. Many teams at Microsoft are already using Git. Teams which have large codebases are facing performance issues with the current version of Git as it is not designed to work with really huge codebases. For example, the Windows codebase has over 3.5 million files and is over 270 GB in size. When you run “git checkout”, it takes up to 3 hours, “git clone” takes 12+ hours, or even a simple “git status” takes almost 10 minutes to run. To avoid these performance issues, Microsoft is working on a solution that allows Git client to scale to really huge repos. The new solution is called GVFS (Git Virtual File System).
Here’s how it works,
- GVFS 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 downloads a file the first time it is opened.
- GVFS also actively manages how much of the repo Git has to consider in operations like checkout and status, since any file that has not been hydrated can be safely ignored.
Since GVFS is managed at the file system level, your IDEs and build tools will support them as it is. While GVFS already offers significant improvements in performance, Microsoft is working to improve it even further. Microsoft is also open sourcing the client code. The GVFS source code is available under the MIT license.