Microsoft has been mapping out plans to improve its Git Virtual File System (GVFS), including linking it to the Visual Studio IDE and getting it supported in third-party Git clients.
GVFS is an attempt to scale the Git software version control system to extremely large projects and teams, virtualizing the .git folder and working directory. In GVFS, only portions of a repo and files are downloaded, providing developers just the portions they need at the time. The software features a server-based back end and a virtualization layer for the client, virtualizing the file system.
As a result of Microsoft’s recent efforts, GVFS will be supported in Visual Studio 2017.3, the beta version of which is coming out in June. To extend it to other Git clients, GVFS now works with the Atlassian SourceTree client. Plans also call for the Tower client to support it and possibly Gitkraken as well, said Brian Harry, Microsoft's vice president of cloud developer services.
To address scalability issues with GVFS and the Git software revision control system, Microsoft has been engaging the broader Git community, Harry said. “We’ve had some great conversations with other large tech companies -- like Google and Facebook — that have similar scaling challenges.”
Microsoft has also added support for GVFS to Git for Windows. “Right now, we still have a private fork of Git for Windows but, over time, we are working to get all those changes contributed back to the main line,” Harry said.
Also, Microsoft has introduced proxies to address the issue of pulling large amounts of data across long distances, where bandwidth can be a problem. The Git proxy for GVFS enables caching data at the edge, Harry said. “We have also used proxies to offload very high volume traffic -- like build servers -- from the main Visual Studio Team Services service to avoid compromising users' experiences during peak loads.” Microsoft has 20 Git proxies scattered around the world.
To use the open source GVFS, developers need to create a Visual Studio Team Services account that has a Git repo in it, because GVFS features a server component requiring the Team Services cloud service.