Thursday, May 25, 2017

GVFS: Git Virtual File System

Virtual File System may be an excellent solution for cloud based "drives" in general.

Microsoft/GVFS: Git Virtual File System @ GitHub (MIT license)

"GVFS stands for Git Virtual File System. GVFS virtualizes the file system beneath your git repo so that git and all tools see what appears to be a normal repo, but GVFS only downloads objects as they are needed. GVFS also manages git's sparse-checkout to ensure that git operations like status, checkout, etc., can be as quick as possible because they will only consider the files that the user has accessed, not all files in the repo"
Microsoft Has Moved the Windows Code Repo to Git @ InfoQ

"Windows repo is about 300GB, with ~3.5M files, 4,000 engineers, and ~1,700 daily builds across 440 branches. When one wants to clone a Git repo, he has to download everything, making the operation slow for large projects. The solution to the problem was virtualization, introducing the Git Virtual File System (GVFS). With GVFS Git behaves like all resources are local, but actually the system monitors user’s actions and brings some of the resources over the network when required. Using a virtual file system driver involved few changes to git.exe."

"A virtual file system (VFS) or virtual filesystem switch is an abstraction layer on top of a more concrete file system. The purpose of a VFS is to allow client applications to access different types of concrete file systems in a uniform way."