HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
microsoft
scalar
C#2020–2026
microsoft / scalar

scalar

Scalar: A set of tools and extensions for Git to allow very large monorepos to run on Git without a virtualization layer

27Distinct people
31Mentions
0Explicit recommenders
1.5KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Scalar: A set of tools and extensions for Git to allow very large monorepos to run on Git without a virtualization layer

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:03:16 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year31 dated mentions

Observed mentions: 2020-11-29 07:04:18 UTC to 2026-08-22 07:51:02 UTC.

0369122020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 6 mentions; 1 submissions, 5 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 11 mentions; 0 submissions, 11 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments20232024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC615
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC11011
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC404
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC606
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC202
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
What is Scalar? Scalar is a tool that helps Git scale to some of the largest Git repositories. It achieves this by enabling some advanced Git features, such as: Partial clone: reduces time to get a working repository by not downloading all Git objects right away. Background prefetch: downloads Git object data from all remotes every hour, reducing the amount of time for foreground git fetch calls. Sparse-checkout: limits the size of your working directory. File system monitor: tracks the recently modified files and eliminates the need for Git to scan the entire worktree. Commit-graph: accelerates commit walks and reachability calculations, speeding up commands like git log. Multi-pack-index: enables fast object lookups across many pack-files. Incremental repack: Repacks the packed Git data into fewer pack-file without disrupting concurrent commands by using the multi-pack-index. As new versions of Git are released, we update the list of features that Scalar automatically configures. This reduces your effort to keep your repositories as efficient as possible. Scalar has moved! Through significant effort from our team, we have successfully transitioned Scalar from a modified version of VFS for Git into a thin shell around core Git features. The Scalar executable has now been ported to be included in the microsoft/git fork. Please visit that fork for all of your Scalar needs: Download the latest microsoft/git release. Read the Scalar documentation. Contribute changes to the scalar CLI. Why did Scalar move? Scalar started as a modification of VFS for Git to create a working solution with a robust test suite in a short amount of time. The goal was to depend more on features that exist within Git itself instead of creating new functionality within this project. Since the start, we have focused on this goal with efforts such as improving sparse-checkout performance in Git, implementing background maintenance in Git, and integrating the GVFS protocol into microsoft/git which allowed us to drop the Scalar.Mount process. All of these changes reduced the size of the code in Scalar itself until it could be replaced with a small command-line interface. Additional benefits to this change include making our release and installation mechanism much simpler. Users now only need to install one tool, not multiple, to take advantage of all of the benefits. What remains in this repository? We are keeping the microsoft/scalar repository available since we have linked to it and want to make sure those links continue to work. We added pointers in several places to navigate readers to the microsoft/git repository for the latest versions. We also have a large set of functional tests that verify that Scalar enlistments continue to work in a variety of advanced Git scenarios. These tests are incredibly helpful as we advance features in microsoft/git, so those tests remain in this repository. We run them as part of pull request validation in microsoft/git, so no changes are made there without passing this suite of tests. What if I already installed Scalar and want the new version? We are working to ensure that users on the .NET version of Scalar have a painless experience while changing to the new version. On Windows, users can install microsoft/git and the installer will remove the .NET version and update any registered enlistments to work with the new version. On macOS, users should run brew uninstall --cask scalar or brew uninstall --cask scalar-azrepos depending on their version and then run brew install --cask microsoft-git to get the new version. At the moment, users on macOS will need to re-run scalar register on their enlistments to ensure they are registered for future upgrades. On Linux, there is no established uninstall mechanism, but the .NET version can be removed via sudo rm -rf /usr/local/lib/scalar/. Installing the new version will overwrite the scalar binary in /usr/local/bin. At the moment, users on Linux will need to re-run scalar register on their enlistments to ensure they are registered for future upgrades. You can check if the new Scalar version is installed correctly by running scalar version which should have the same output as git version. License The Scalar source code in this repo is available under the MIT license. See License.md. Code of Conduct This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
Read the full README on GitHub

What Hacker News says

31 sources
GitHub’s scaling problem is handling huge numbers of relatively small repos at high concurrency. This is not the same problem as Google, Microsoft, Meta et al who have terabyte-scale monorepos, and all have lazy-load solutions to create virtual clones where only the parts you are working on are loaded onto local disk. Microsoft Windows moved to GitHub some time ago and they used the filesystem approach OP dismisses too blithely: https://github.com/microsoft/scalar
In Git at any scale
The conclusion reached in this essay is 100% wrong. See " The reftable backend What it is, where it's headed, and why should you care?" >With release 2.45, Git has gained support for the “reftable” backend to read and write references in a Git repository. While this was a significant milestone for Git, it wasn‘t the end of GitLab’s journey to improve scalability in repositories with many references. In this talk you will learn what the reftable backend is, what work we did to improve it even further and why you should care. https://www.youtube.com/watch?v=0UkonBcLeAo Also see Scalar, which Microsoft used to scale their 300GiB Windows repository, https://github.com/microsoft/scalar.
In Package managers keep using Git as a database, it never works out
Meta open-sourced their complete stack: https://github.com/facebook/sapling Microsoft released Scalar (https://github.com/microsoft/scalar) although it's not a complete stack yet but it is already planning on releasing the backend components eventually. Have you tried Sapling? It has EdenFS baked in so it'll only materialize the files you touch and operations are fast because it has a filesystem watcher for activity so it doesn't need to do a lot of work to maintain a view of what has been invalidated.
In Monorepo – Our Experience
It's not only Windows that uses Git at Microsoft, but Sharepoint and Office (which includes the on-prem version of SharePoint). In terms of repo size Windows and Office are similar. I was part of the team that migrated Sharepoint from a Perforce clone to Git and helped build the tooling to allow Office to move as well. VFS for Git [1] and Scalar [2] are really good pieces of software. [1] - https://github.com/microsoft/VFSForGit [2] - https://github.com/microsoft/scalar
In Debian Git Monorepo
I'm not sure that this continues to be true, now that Git supports partial clones[1]. It's now a fully supported feature in Git to work with only a partial copy of the code and metadata. In my experience, this plus an fsmonitor[2] makes Git work fine on very, very large repos. This is how Microsoft scaled Git to work with their massive Windows monorepo[3]. (That particular article talks about the earlier work using Git VFS, but it eventually turned into these extensions that got upstreamed into Git, as documented in the Scalar repo[4].) [1] https://github.blog/2020-12-21-get-up-to-speed-with-partial-... [2] https://github.blog/2022-06-29-improve-git-monorepo-performa... [3] https://arstechnica.com/information-technology/2017/02/micro... [4] https://github.com/microsoft/scalar
In Why Facebook doesn't use Git
Microsoft had a bunch of solutions to handle their massive Windows repo: VFS for Git (GVFS), Scalar, and now it has a bunch of MS specific patches on top of the official git client, but apparently that one is also not required any more as partial clone is now supported on azure as well (which is another such implementation from Microsoft employees that made it to both GitHub and upstream git). So yeah, solved problem thanks to Microsoft. Solved multiple times in fact, and because it's Microsoft, only not all had Linux installers: https://github.com/microsoft/scalar/issues/323#issuecomment-... https://github.blog/2020-01-17-bring-your-monorepo-down-to-s... https://devblogs.microsoft.com/devops/introducing-scalar/ https://github.com/microsoft/git https://devblogs.microsoft.com/devops/git-partial-clone-now-...
In Ask HN: Can we do better than Git for version control?

Showing the 15 most recent of 31 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.