SVN Works Fine for Us — Why Switch? Retaking the Answer I Fumbled
In the meeting, my answer was "it has more collaboration built in." Not wrong, but empty. Here's the honest version — where SVN and TortoiseSVN are genuinely good, what exactly differs in version-control terms, and why what we sell is a property, not a feature list.
"We're doing fine with SVN and TortoiseSVN. Why should we change?"
When I got this question, my answer was something like "our platform has more collaboration built in." Not wrong. But it kept nagging at me on the way back. To an organization that has run SVN for twenty years, "it collaborates better" carries zero information — from where they sit, they already collaborate fine. Here's the answer I should have given in the room.
What are SVN and TortoiseSVN genuinely good at?
Before arguing for a change, honesty requires listing the cases where you shouldn't change. SVN is centralized, so there's never a question of where the single source of truth lives, and its linear revision numbers make history intuitive. TortoiseSVN's file-explorer integration is well-made UX even by today's standards. People who never touch a command line can participate in version control with a few right-clicks, and that is not a small thing. And for binary artifacts that can't be merged (design files, document masters), a locking workflow is frankly more natural in SVN than in Git.
So for a certain kind of organization, I don't recommend switching at all. Small team, single repository, sequential releases that make branching effectively unnecessary, low audit burden. There, SVN isn't the problem; it's the answer. The cost of switching tools is certain and the benefit is uncertain, and recommending that trade to an organization with a small benefit is salesmanship, not advice.
Then what exactly is different, in version-control terms?
The difference isn't whether commits get recorded — it's whether the context around the commit gets recorded. SVN knows what changed and when. It knows that well. What SVN doesn't know is which requirement the change came from, who reviewed it, which tests it passed, and when it shipped to which server. That context does exist somewhere today: in approval documents, in mailboxes, in meeting minutes, in the maintainer's memory. Outside the version-control tool.
Doing version control in CollabOps means that context lands on the same plane as the commit. A branch comes out of an issue, approval lives on the change request, verification results live on the pipeline, and the deployment record links back to all of it. Three years later, the answer to "why does this code look like this?" isn't one line of revision log but a connected record you can descend through in a few clicks. Yes, there are also capability differences (concurrent branch-and-merge development, line-level tracing, covered in the lock-based SCM post), but honestly, those are secondary. The Git-versus-SVN feature comparison table was settled fifteen years ago, and I know perfectly well that table convinces nobody with a twenty-year incident-free record.
What does convince is this question: when an audit or an incident investigation comes, how many days does it take to reconstruct the context around a change, and whose overtime pays for those days each time? The better an organization runs SVN, the less it books this cost as a "version control cost," because it accrues outside the version-control tool. But it's version control's debt all the same.
If not features, what are we selling?
This is the sentence I most wanted to write. What we sell is not a feature list; it's a property. The sum of "has an issue tracker, has repositories, has CI" can be assembled next to SVN by buying three tools. What we sell is the property that those three are on one plane from the start, so evidence accumulates as a byproduct of doing the work. To reuse a line from the waterfall post: features can be added later; properties are either there from the beginning or never.
It's the same structure as why nobody buys a phone by comparing CPU clock speeds. What they buy is the experience of it just working. Our demos that landed were never the ones where we showed the most features — they were the ones where a single issue flowed to deployment and into the audit log without a seam. That flow is the value. Features are its components.
So the proper answer to the question was this: "I don't doubt that you run SVN well. But what SVN does well is half of the version-control job. The other half, context and evidence, is currently done by people. What we sell is moving that other half into the system. If your organization doesn't need that half, you're right not to buy."
For organizations that do decide to move, there are three paths that preserve existing history (full migration, read-only indexing, mirrored coexistence), and the advice to start with one team is exactly what I wrote in stability is the reference. There's no rush. SVN isn't going anywhere, and in this game, the side accumulating an incident-free record is the side that wins.
Related posts
How Much of "Git Is Risky, SVN Is Safe" Holds Up? An Operations Comparison Table
Security comparisons of Git and SVN mix two separate questions: where the repository runs and what gets replicated to developers. Using official documentation, this post compares five items in a table (internal hosting, local copy scope, per-path read separation, egress, access revocation) and ends with a checklist for a source control security review.
John Baek
Is Git Safe for Government Agencies on an Internal Network? What the Public Record Says
Asked whether Git can run in a closed network at all, I checked the official docs, government announcements, and procurement records. The answer is yes, internal-network Git can be operated safely. Here are the evidence, the two design decisions that make it so, and a question list for security reviews.
John Baek
But We Lock Files Before Editing — Moving from Lock-Based SCM to Concurrent Development
There's a question we get in almost every public-sector meeting. We lock a file before we touch it — so how does your solution work? On the difference between lock-based and branch-merge models, how control survives without locks, and a migration path that doesn't throw away history.
John Baek