7 min left
Back to Series

Under the Hood > Article 7 | Intermediate | 7 min read

Article 7Intermediate7 min read

What Lore teaches us about scaling version control

Git won by being good enough for most repos. Lore asks what breaks when history, file count, and monorepo size exceed what Git was designed to absorb — and what a purpose-built VCS might do differently.


Version control system architecture for large monorepos

Lore is an open-source version control system designed for scalability — large repositories, long histories, and monorepo workloads where Git's performance characteristics start to hurt. The project drew significant attention on Hacker News not because Git is failing tomorrow, but because a growing slice of engineering orgs is hitting limits that Git was never optimized for.

This article is not a Lore review or a prediction that Git will be replaced. It is a systems read: what breaks at scale, why Git's design choices cause those breaks, and what a purpose-built VCS might prioritize differently.

Where Git starts to strain

Git excels at distributed workflows, branching, and repos that fit comfortably in memory on a developer laptop. Strain appears when any of these grow large:

  • Repository size — binary assets, generated code, or years of history push clone and fetch times from seconds to tens of minutes.
  • File count — monorepos with hundreds of thousands of files slow status, checkout, and index operations.
  • History depthgit log, blame, and bisect over millions of commits become expensive on commands that feel instant in small repos.

The pain is operational. CI pipelines wait on shallow clones that still transfer gigabytes. Developer laptops swap during git status. Code review tools timeout listing diffs across unrelated monorepo paths.

Think of Git like a filing cabinet that works perfectly for a single office. Stack ten years of every department's records into one drawer, and the same cabinet becomes the bottleneck — not because it was badly built, but because the load profile changed.

Design choices that create the ceiling

Git stores snapshots as content-addressed objects linked in a directed acyclic graph. Deduplication is excellent. But several properties follow:

Full history by default. Every clone carries the entire graph unless you use shallow clones or partial clone filters — features that exist but complicate tooling assumptions.

Index scans the working tree. git status compares the index to the filesystem. In a 500k-file monorepo, that comparison dominates interactive workflow latency.

No native partial checkout semantics at the protocol level. Sparse checkout and submodules patch around monorepo needs; they do not redesign the core model for "I only care about this subtree."

Merge and rebase complexity scales with conflict surface. Large repos with many concurrent contributors increase the probability of painful merges independent of Git's raw speed.

These are not bugs. They are trade-offs Git made for distributed open-source development in the 2000s. Enterprise monorepos at 2020s scale are a different problem.

What a scalable VCS might optimize

Projects like Lore typically bet on different priorities:

  • Partial visibility — fetch and work with a slice of the tree without materializing the whole repo.
  • History segmentation — lazy history loading instead of all-or-nothing clone depth.
  • Metadata indexing — fast queries over file paths, authors, and change types without walking the full object graph.
  • Server-assisted operations — move expensive computation to infrastructure designed for it, not every laptop.

The pattern mirrors databases: you do not run analytics on a production OLTP schema without an index strategy. Git at monorepo scale is OLTP without the indexes your query patterns now require.

Version control at scale is a storage and indexing problem wearing a collaboration interface.

Git is not going away — but the fringe is real

Replacing Git org-wide is a multi-year migration with tool-chain dependencies: CI, code review, IDE integration, hosting platforms. Lore and similar projects target teams already feeling acute pain and willing to experiment.

For most teams, the near-term playbook remains Git plus mitigations: partial clone, sparse checkout, history truncation for CI, and monorepo tooling (Bazel, Nx, internal virtual filesystems) that reduce how often Git sees the full tree.

The Lore conversation matters because it names the ceiling explicitly. When your clone time exceeds your coffee break, the problem is architectural — not something another .gitignore entry fixes.

SymptomCommon Git mitigationArchitectural fix direction
Slow cloneShallow clone, partial cloneLazy history, server-side fetch
Slow statusSparse checkout, skip-worktreeIndexed working-tree diff
Huge monorepoSubmodules, split reposNative partial-tree semantics
Binary bloatGit LFS, external storageContent-type-aware storage layer

What this means for builders

Measure before migrating. Track clone time, status latency, and CI fetch duration. If none exceed a few minutes, Git mitigations are cheaper than a VCS migration.

Treat monorepo pain as a design signal. When developers avoid commits because status is slow, the repo structure or tooling — not individual discipline — is the problem.

Watch purpose-built VCS projects for indexing ideas. Even if you stay on Git, their approaches to partial visibility and lazy history inform how you configure partial clone and sparse checkout today.

Plan tool-chain cost for any switch. A faster VCS that breaks your review bot, CI cache keys, and IDE integration is not a win on net.

Conclusion

Lore enters a conversation Git's success created: version control that scales to every laptop on Earth works until your tree, history, or binary surface area outgrows the assumptions baked into the original design. Understanding where those assumptions bite — and what a system optimized for monorepos would prioritize instead — helps you decide whether you need a configuration tweak, a monorepo tool layer, or something more radical. Most teams land on the first two. The third is worth watching.


version controlGitmonoreposystems designscalabilitydeveloper tools

Up next in the series

Article 8Live

Prompt injection as role confusion

Research shows LLMs follow text style more reliably than role tags like system and user — which means jailbreak defenses built on markup alone may not hold.

LLMprompt injectionsecurityjailbreak