Microsoft’s Scalar speeds up Git
- 19 February, 2020 16:00
Scalar is a C# application that accelerates Git command performance by setting recommended configuration values and running background maintenance. By running
scalar register in a Git repo, the following Git features are enabled:
- Sparse checkout to limit the size of a working directory.
- File system monitoring to eliminate the need for Git to scan an entire work tree.
- Multi-pack indexing to allow fast object lookups across many pack-files.
- Commit-graph to accelerate commit walks and reachability calculations, speeding up commands such as
Microsoft developed Scalar to address Git’s struggles when managing growing amounts of data. Microsoft has used VFS for Git, formerly the GVFS network protocol, which uses a virtualized file system to help Windows developers use Git with very large repositories. While using VFS for Git, Microsoft identified performance bottlenecks using a trace system and collecting user feedback. The results led to several contributions to the Git client including improvements to
git push. Building on these contributions, Microsoft began a project to support very large repositories without needing a virtualized file system. Scalar was the result of those efforts.
Scalar is a .NET Core application installable on Windows or MacOS. Repos cloned with the
scalar clone command use GVFS to reduce the amount of data needed to start a repository. By delaying blob downloads until absolutely necessary, Scalar lets users work quickly with very large repositories.