Microsoft Announces Git Virtual File-System (GVFS)
Microsoft's latest open-source project is the Git Virtual File-System.
GVFS for short, the Git Virtual File-System is designed to scale up to repositories of any size -- including the Windows code-base in Git at 270GB and 3.5 million files. Git for the massive size of Windows would take hours to clone and other basic commands.
Basically with GVFS, files are only downloaded when needed. Microsoft's announcement explains, "GVFS (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 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. And because we do this all at the file system level, your IDEs and build tools don’t need to change at all!...With GVFS, this means that they now have a Git experience that is much more manageable: 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. (Of course, the tradeoff is that their first build takes a little longer because it has to download each of the files that it is building, but subsequent builds are no slower than normal.)"
The Git Virtual File-System currently only works for Windows 10, but with it being open-source under the MIT, it likely will only be a matter of time before we see it implemented as a FUSE driver for Linux.
More details via this MSDN blog post and GitHub for the code.
GVFS for short, the Git Virtual File-System is designed to scale up to repositories of any size -- including the Windows code-base in Git at 270GB and 3.5 million files. Git for the massive size of Windows would take hours to clone and other basic commands.
Basically with GVFS, files are only downloaded when needed. Microsoft's announcement explains, "GVFS (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 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. And because we do this all at the file system level, your IDEs and build tools don’t need to change at all!...With GVFS, this means that they now have a Git experience that is much more manageable: 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. (Of course, the tradeoff is that their first build takes a little longer because it has to download each of the files that it is building, but subsequent builds are no slower than normal.)"
The Git Virtual File-System currently only works for Windows 10, but with it being open-source under the MIT, it likely will only be a matter of time before we see it implemented as a FUSE driver for Linux.
More details via this MSDN blog post and GitHub for the code.
83 Comments