gity vs Scalar, VFS for Git, and ProjFS
Microsoft's lineage of giant-monorepo tools versus a focused user-space Git accelerator. Where each fits.
When to pick gity
- You need cross-platform fsmonitor with a small footprint
- You want a CPU/battery-aware scheduler for prefetch and maintenance
- You have many worktrees and want shared cache between them
- You want a focused single-purpose binary, not a curated Git workflow
When to pick Scalar / VFS for Git
- You want one tool that wraps Git's full performance feature set with known-good defaults
- You're on Windows-scale monorepos (think Windows OS source)
- You want Microsoft-supported convenience commands for clone + sparse + maintenance
- Scalar is already preinstalled with your Git distribution
TL;DR
Scalar is a curated Git workflow for giant monorepos. It enables partial clone, sparse checkout, fsmonitor, and background maintenance with known-good defaults.
gity overlaps with Scalar in one specific area — fsmonitor + maintenance — and doesn’t try to be a Git-workflow wrapper.
| Capability | Scalar | gity |
|---|---|---|
Partial clone (--filter=blob:none) | ✓ | (use Git directly) |
| Sparse checkout convenience commands | ✓ | (use Git directly) |
| fsmonitor v2 | ✓ (uses Git’s built-in) | ✓ (own daemon) |
| Background maintenance | ✓ (cron-style) | ✓ (CPU + battery aware) |
| Multi-worktree shared cache | ✗ | ✓ |
| CI oneshot mode | ✗ | ✓ |
| Windows kernel dependency | ✗ (since Scalar) | ✗ |
When to pick Scalar
You want one tool that wraps Git’s full performance-oriented feature set with known-good defaults, and you work on Windows-scale monorepos. Scalar is what Microsoft uses for the Windows OS source — battle-tested at the largest scale anyone runs.
When to pick gity
You want cross-platform fsmonitor with a small footprint, a CPU/battery-aware scheduler, and shared cache across worktrees of the same repo. gity is focused on the fsmonitor + maintenance subset and doesn’t try to be a Git workflow wrapper.
Coexistence
In principle, Scalar handles repo wrapping (partial clone, sparse checkout, maintenance), gity handles fsmonitor. In practice both want the core.fsmonitor slot — pick one for any given repo.
For deeper details, see our full Microsoft-lineage comparison.
Frequently asked questions
Is ProjFS still recommended?
No. Microsoft moved away from ProjFS-based VFS for Git in favour of Scalar, which is user-space. ProjFS still exists as a Windows kernel feature, but it's no longer the recommended path for Git acceleration.
What's the relationship between GVFS, VFS for Git, and Scalar?
Same lineage: GVFS (2017) → VFS for Git (2019, rebrand) → Scalar (2021, complete rethink). GVFS/VFS used the ProjFS kernel driver; Scalar uses pure user-space Git features (partial clone, sparse checkout, fsmonitor, maintenance). Scalar is what Microsoft recommends today.
Does Scalar use fsmonitor?
Yes — Scalar enables Git's built-in fsmonitor daemon when you `scalar register` a repo. gity differs by being the fsmonitor helper itself, with multi-repo and multi-worktree coordination built in.