News

Azure DevOps Team Speeds Up Git with New Scalar Project

Microsoft's Azure DevOps team announced Scalar, a new project to speed up the operations of Git, the popular, open source, distributed version control system commonly used with source code repository platforms like GitHub.

The team created the project to improve on its efforts associated with VFS for Git, its tool used to deal with the special problems encountered with huge projects, like Windows itself, described years ago as "The largest Git repo on the planet." VFS for Git uses a virtualized filesystem "to bypass many assumptions about repository size, enabling the Windows developers to use Git at a scale previously thought impossible."

In working with VFS for Git, Microsoft developers found performance bottlenecks in the Git client itself, and contributed to the development of the client to address those issues.

"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," said Derrick Stolee, principal software engineer, Azure DevOps, in a Feb. 12 blog post. "Today we are excited to announce the result of those efforts – Scalar. Scalar accelerates your Git workflow, no matter the size or shape of your repository. And it does it in ways we believe can all make their way into Git, with Scalar doing less and Git doing much more over time."

The core of the performance problems with gigantic repos results from Git being a distributed version control system that keeps track of all files in the entire history. That can add hundreds of megabytes of data to even mid-sized repos, never mind Windows-sized projects for which core commands like git status, git add and git checkout can slow to a crawl, causing developers to switch contexts, which reportedly lowers productivity, Stolee said. And back in 2017, the Windows repo's code base was about 3.5 million files, creating a repo of about 300GB.

Scalar, developed on GitHub, is a .NET Core application coded in C# that improves the performance of Git commands via the setting of recommended config values and background maintenance operations.

"Scalar accelerates Git commands in your existing repositories, no matter what service you use to host those repositories," Stolee said. "All you need to do is register your biggest repositories with Scalar and then see how much faster your Git experience becomes."

This week's post delves deeply into the work behind the project and points to future planned Git contributions by Microsoft, as the company's plan is to infuse Scalar features into the Git client itself, obviating the need for a separate Scalar tool.

One planned work item is to replace Scalar's Watchman filesystem watcher -- which isn't aware of Git -- with a custom filesystem watcher in Git itself so the team can optimize that interface to fit Microsoft's needs.

Documentation for Scalar, including getting started guidance, a FAQ and more is available here.

About the Author

David Ramel is an editor and writer at Converge 360.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube