Microsoft has taken the wraps off a tool it says will utlimately make it easier for everyone to manage vast code repos with Git.
The tool is called Scalar, and Derrick Stolee, principal software engineer for Azure DevOps, said in a blogpost it “accelerates your Git workflow, no matter the size or shape of your repository…in ways we believe can all make their way into Git, with Scalar doing less and Git doing much more over time.”
Microsoft has made the code available on GitHub – naturally – under the MIT License, where it adds, “Scalar is a C# application that manages large Git repositories”
Stolee said the project arose in response to some of the problems its development teams faced using Git to manage the vast code bases associated with its own products.
“At Microsoft, we support the Windows OS repository using VFS for Git (formerly GVFS),” he said, but it had identified key bottlenecks, and had made contributions to Git to address these.
“Building on these contributions and many other recent improvements to Git, we began a project to support very large repositories without needing a virtualized filesystem.”
He said Scalar “maximizes your Git command performance by setting recommended config values and running background maintenance. You can clone a repository using the GVFS protocol if your repository is hosted by Azure Repos. This is how we will support the next largest Git repository: Microsoft Office.”
Over time, though, Stolee said over time, Git itself should solve these problems. “We intentionally are making Scalar do less and investing in making Git do more. Scalar is simply a way to get the performance we need today. As Git improves, Scalar can provide a way to transition away from needing Scalar and using only the core Git client.
He added, “Scalar also serves as an example for the kinds of features we need in Git to remove these management layers on top.” Over the “coming years”, he said, Microsoft planned a series of Git Contributions, including a custom filesystem watcher, further improvements to sparse-checkout, and a parallel version of git checkout to improve performance. It also plans to contribute “a form of background maintenance” to the core Git client.