Bram Cohen Outlines What Version Control Should Look Like After Git

2 min read 1 source explainer

Bram Cohen — yes, the BitTorrent creator — has published a detailed vision for the future of version control in a post titled 'Mañana,' and it's drawing serious attention on Hacker News (270+ points).

Cohen isn't new to this space. He's been working on version control problems for years, most notably through the Chia project's internal tooling needs and his earlier work on merge algorithms. His core argument: Git won, but Git also calcified. The tool that freed us from centralized version control has itself become an obstacle to further progress, not because it's bad, but because its internal model constrains what we think version control can do.

The post lays out a coherent design philosophy rather than just a feature wishlist. Cohen has historically focused on three areas where Git falls short for modern development:

Merge quality. Git's three-way merge is adequate for simple cases but produces unnecessary conflicts in scenarios involving moved code, renamed files, and concurrent refactors. Cohen has previously published work on improved merge algorithms that track semantic changes rather than just line-level diffs. If your team has ever spent an afternoon resolving merge conflicts that a smarter tool could have handled automatically, this is the problem space.

Large repository performance. Git's content-addressable storage model means every clone carries full history. Solutions like partial clone and sparse checkout are bolted on. A ground-up design can treat large-scale repos as a first-class concern rather than an afterthought.

User model simplicity. Git's index/staging area, detached HEAD states, and reflog archaeology are power-user tools masquerading as core workflow. Cohen's vision likely pushes toward a model where the common operations are genuinely simple, not just wrapped in aliases.

The timing matters. We're in a moment where AI-assisted development is generating more code changes faster, making merge conflicts and history navigation more frequent pain points. A version control system designed for the era of AI pair programming — where dozens of speculative branches might be explored in a single session — would look meaningfully different from one designed for 2005-era kernel development.

What makes this more than blog-post futurism: Cohen has a track record of actually building distributed systems that work (BitTorrent is still the most efficient large-file distribution protocol ever designed). Whether this becomes a real tool or remains a design document, the technical analysis of where Git's model breaks down is worth reading for anyone who's accepted Git's quirks as immutable laws of nature.

They're not. They're design choices, and different choices are possible.

Hacker News 640 pts 361 comments

A Coherent Vision for the Future of Version Control

→ read on Hacker News
ulrikrasmussen · Hacker News

The thing about how merges are presented seems orthogonal to how to represent history. I also hate the default in git, but that is why I just use p4merge as a merge tool and get a proper 4-pane merge tool (left, right, common base, merged result) which shows everything needed to figure out why there

theknarf · Hacker News

You can't use CRDTs for version control, having conflicts is the whole point of version control. Sometimes two developers will make changes that fundamentally tries to change the code in two different ways, a merge conflict then leaves it up to the developer who is merging/rebasing to make

Koshkin · Hacker News

What's currently missing from the automatic conflict resolution is intelligence. The AI doing merges is the future.

radarsat1 · Hacker News

Is it a good thing to have merges that never fail? Often a merge failure indicates a semantic conflict, not just "two changes in the same place". You want to be aware of and forced to manually deal with such cases.I assume the proposed system addresses it somehow but I don't see it in

barrkel · Hacker News

I don't really get the upside of focus on CRDTs.The semantic problem with conflicts exists either way. You get a consistent outcome and a slightly better description of the conflict, but in a way that possibly interleaves changes, which I don't think is an improvement at all.I am completel

// share this

// get daily digest

Top 10 dev stories every morning at 8am UTC. AI-curated. Retro terminal HTML email.