THE MIGRATION LINE
INCIDENT // GITHUB-2023RESOLVED

GitHub spent fourteen years hosting Subversion so people could leave Subversion. By the end, under 0.02% of requests used it — so on January 8, 2024, it turned the bridge off.

GITHUB·2023·GIT / SUBVERSION / DEPRECATION / PLATFORM·✓ Sourced — github.blog
System stress over timeNominal
under 0.02%SVN share of requests
~5,000/monthRepos still using it
up to 94% of developersGit adoption
January 8, 2024Sunset
BASELINE

A bridge built in 2010

When GitHub added Subversion support in 2010, Git was not yet the obvious default. Plenty of teams wanted to move but couldn’t do it in one jump — their tooling, their habits, and their release process all spoke SVN.

So GitHub supported Subversion natively on top of a Git backend. The repository was Git; the front door could be SVN. In GitHub’s own framing, this made it easier for customers to move to Git while changing their workflows over gradually. The bridge existed so people could cross it.

DRIFT

And then everybody crossed

It worked. Over the following decade Git went from contested to assumed — reaching up to 94% usage among developers — and the Subversion door stopped being an on-ramp. It became a room almost nobody walked through.

By the end, fewer than 0.02% of requests hitting GitHub’s Git backend arrived via a Subversion endpoint, and only about 5,000 repositories saw even a single Subversion request in a given month. Across a platform of GitHub’s size, that is close to silence.

ROOT CAUSE

What a nearly unused feature actually costs

The temptation with a feature at 0.02% is to leave it alone. It’s not hurting anyone. Nobody’s asking for it to go. Turning it off will only ever generate complaints.

And the justification for paying it had quietly expired. The bridge’s purpose was to help people migrate to Git. By 2023, as GitHub acknowledges, Subversion support was no longer helping people migrate to Git — because there was almost no one left to help.

THE FIX

Turn it off, on purpose, with warning

The users who remained weren’t simply abandoned, because GitHub had a read on why they were still there: the main thing Subversion offered that Git historically hadn’t was checking out only part of a repository. That gap has since closed. Sparse checkout, the sparse index, and partial clone now cover the use case in Git itself, which is where GitHub pointed people.

AFTERMATH

A success you can only see by removing it

It’s worth being precise about what happened here, because it reads like a deprecation and it isn’t one. Subversion support didn’t fail. It did exactly the job it was built for, for fourteen years, and the collapse in its usage is the evidence that it worked. The 0.02% is a victory statistic.

A migration aid is the rare feature whose success is measured by its own disuse — so decide up front what number will let you switch it off, or you’ll maintain it forever out of politeness.

Source — read the original

A plain-language, AI-drafted and human-edited retelling of the article published on github.blog, reorganized and explained in our own structure and words, with original analysis in the editor's note above. The facts, numbers, and decisions belong to the original author and are not altered. For the full depth, read the source.

← All systems