
Subversion
Subversion (SVN for short) is a version control system that keeps a traceable record of changes to files and folders, allowing teams to work together on the same files without overwriting one another's work. For years it was the industry standard before Git largely replaced it.
Subversion is software that records every change made to a set of files. Each change is given a number, the so-called revision number. This makes it possible to see at any time who changed what and when — and, if needed, to restore older versions. Multiple people can work on the same files at the same time without losing their changes. Subversion was developed in the early 2000s; today it is maintained by the Apache Software Foundation, which is why it is often called Apache Subversion.
Subversion as the backbone of collaboration
Without a version control system, teams end up emailing files back and forth with names like “Draft_final_v3_NEW.docx”. This quickly turns into chaos when several people are working at once. Subversion solves this problem by storing all changes centrally on a server.
The concept of the revision number is especially important. Every time someone uploads their changes to the server — known as a commit — the revision number increases by one. This creates a seamless chronicle of the entire project. If someone accidentally deletes an important function, the exact revision in which it still existed can be restored.
Another advantage is accountability. The system keeps track of which user changed which line in which revision. In teams that jointly maintain code or documents, this is indispensable: disputes over who made a particular change can be settled within seconds.
Central repository and the checkout principle
Subversion operates on a centralized principle. There is exactly one server holding what is called the repository — the central store of all files and their entire history. Anyone who wants to contribute fetches a working copy onto their own computer, a process called a checkout. From then on, work happens locally, and finished changes are uploaded back to the server via commit.
If two people edit the same file at the same time, Subversion detects the conflict. It tries to merge both changes automatically. If that fails — for example because both changed the same line differently — the system reports a conflict that a human must resolve manually. This may sound cumbersome, but it is far better than silently overwriting each other’s work.
Subversion treats directories and files the same way. Renaming or moving a file is also stored as a change, not as a deletion and a new creation. This sets Subversion apart from older systems that tracked only file contents but not the structure of a project.
SVN in practice — and why Git has almost replaced it
For years, Subversion was ubiquitous in software development. Major projects such as the Linux distributor FreeBSD or many open-source libraries used it. SVN was also used at companies that don’t develop software at all — for example, to version construction plans, legal documents, or design files.
Since around 2010, Git has largely displaced Subversion in software development. The key difference: Git is distributed. Every developer carries a complete copy of the project’s history on their own machine. With Subversion, on the other hand, the central server is indispensable — if it goes down, no one can commit or view the history. For teams working across different locations or without a stable internet connection, this is a significant drawback.
Still, you regularly come across SVN: at companies with long-grown IT structures, in game development for very large binary files, and anywhere strict, centralized rights management is required. If you read in tech news that a project is migrating its sources from SVN to Git, you can be sure it’s an older, well-established project.