What is Subversion?
Subversion is an open-source version control system (VCS) that you will often see abbreviated to 'SVN'.
If you want to learn how to code, developing good habits is essential.
Subversion will help you to stay organized as you develop your own scripts.
As you develop software, you'll need to manage the different revisions and ensure changes are properly tracked.
To make it easier for developers to track code changes, Subversion (SVN) hosting offers easily accessible repositories and a Web interface.
Understanding Version Control
A repository is a data structure that exists on a disk. The repository stores the metadata of files or a directory structure.
The data in the repository may exist on one single server, as is the case with a Subversion repository, or it may be duplicated and distributed across all user's systems, as is the case with Git (a popular version control system).
What Data do Repositories Contain?
Repositories contain information such as:
- A record of the historical changes in the repository
- A set of commit objects (this is a record of the changes to the repository)
- Heads, which is the name for a set of references to the commit objects
What Subversion (SVN) Does
Subversion is used to track different versions of a project, such as a software application, while it's in active development. It saves snapshots of each file and helps developers to monitor changes and backtrack if they need to.
On an extremely basic level, Subversion monitors:
- File operations (such as renaming, copying, and moving files)
- Files that are being worked on
- The activities of different collaborators
It also produces a log file in XML format, so it's easy to see what's been changed, and who changed it. Changes to any file can be rolled back.
One of Subversion's biggest strengths is its ability to track work over a network, or over the web.
This makes it ideal for collaborative projects, hence its popularity with the open-source community.
From the command line, it is run using the svn command, which gives it its abbreviated name.
For those who don't want to use the command-line interface (CLI) there are Subversion GUI clients like TortoiseSVN, SmartSVN, RabbitVCS, and Cornerstone 3.
Subversion was not the first entrant to this sector.
It is a modern take on the Concurrent Versions System (CVS), which itself was a reworking of the Revision Control System (RCS).
The latter was developed for simple development tasks. CVS was used to coordinate developers who worked at different times to prevent them from overlapping each others' work.
Subversion replaces and improves on CVS, which is now rarely updated.
Subversion can be used with SSH. This ensures a secure connection between the Subversion client and the SVN server by encrypting all passwords and data.
History of Subversion
The first version of Subversion was formally released in 2004 by CollabNet after four years in development.
CollabNet specifically wanted to replace CVS, the system it was currently using, and sought developers who were up to the challenge. One of the people who signed up was Jim Blandy who was working for Red Hat Software at the time.
As the freeware market exploded, Subversion became the default choice for version control.
It has been used to measure development on many prominent projects, including projects managed by Google.
Subversion was formally brought into the Apache family in 2010.
Subversion is now known as Apache Subversion and is maintained by a community of developers. Its open-source position makes it accessible for all. CollabNet contributes financially to keep the project going.
Looking for a great deal on Subversion hosting?
SiteGround - rated #1 by our readers - provides SSD-powered cloud hosting and excellent in-house SVN support. Use this exclusive discount link to get special pricing on their plans.
Who Uses Subversion?
There are three main audiences for this type of software:
- Coders who are working on a collaborative project
- Technical writers developing documentation for a website or app
- Web developers updating and improving website designs
However, Subversion can be used for practically any collaborative project.
You could write a recipe book and invite others to improve your recipes. You could create a series of playlists and let others edit and expand on them.
However, remember that Subversion has quite a lot of specialized features, and it will be overkill for many small projects that don't require granular versioning.
Subversion makes simple file editing and other basic tasks far more complicated, so it's only appropriate if you can justify that extra admin.
Subversion (SVN) vs Git
Git is the most popular version control system today. Let's look at some differences between the open-source project and SVN.
SVN is centralized, meaning that only the Subversion server has the repository with the complete file history. SVN repositories are also larger and can only be accessed online.
On the other hand, Git is fully-distributed, meaning it contains multiple (smaller) redundant repositories. Each user can have a complete copy of the repository, giving them quick access to file history. More, Git users can access the repositories offline, too.
Git also allows unlimited repositories in private projects.
SVN is slower since users have to communicate over the network to access the SVN repository server. Git is much faster since all operations are performed locally.
Subversion has more interface tools than Git. The primary user interface of Git is accessed and operated through the command-line.
An SVN server contains all of the materials and branches related to the project. Meanwhile, in Git, not everything related to the project is necessarily stored in the same location.
Permissions and Contribution
With SVN, you can assign distinct permissions to separate files and directories. Git assumes all contributors to the project have the same permission rights.
If something happens to the Subversion server, the repository may be lost completely. Meanwhile, each Git user has a backup of the repository.
What are the Web Hosting Requirements for Subversion?
Subversion saves a file path and a revision number for every file in the project. It does not host any files itself, so its data represents links to files rather than the files.
This means Subversion can run on a relatively small disk space allocation.
However, not all hosts offer Subversion because it's so specialized.
Look for specific details on the host's site, and submit pre-sales questions to make sure you'll get what you need.
Make sure your host can make Subversion private, and ensure it won't plaster your install with advertising.
If you have a large team, check you won't be charged extra for sharing.
A backup provision is strongly recommended. Don't rely on your host's backups, since they're almost certainly private to the host, and you won't be allowed access to them.
Pay for a good quality cloud backup service, or buy an appropriate service as an add-on to your hosting plan.
If Subversion is central to your project, the extra cost will be justified.
My Top 3 Subversion Host Recommendations
If you're looking for an SVN host, your options will be limited.
|Host||Plan Type||SVN Pre-Installed?||Price|
For the cheapest Subversion hosting, check out A2 Hosting.
Their shared servers will give you some of the most affordable hosting for Subversion.
Subversion comes pre-installed on your server. And, A2 Hosting loads your account with all the developer features you'll need.
While SiteGround is far more expensive, their customer support team is experienced in SVN, and they're standing by at all hours to help you out with any problems.
Store files of source code, web pages, and more on their reliable and secure platform.
Enjoy daily automatic backups as well as auto-scaling resources.
SiteGround only supports Subversion with their dedicated plans, hence why this may be a pricey option for most.
For subversion hosting with 100% uptime guarantee, try MochaHost. Though their website is confusing and frankly quite ugly, their hosting is dead cheap.
SVN support is included with select shared hosting plans, including cPanel access and various developer tools. You can very easily create your SVN repository via cPanel.
MochaHost offer Subversion support with their Shared Business and Linux hosting plans.
Apache Subversion Site has key resources for all things Subversion. Here you'll find FAQ, downloads, documentation, forums, and more.
Other features in Version Control
Looking for bargain-priced SVN hosting?
A2 Hosting scored 1st place in our recent speed and performance tests. SVN comes pre-installed on their plans. Use this special discount link to save up to 50% on A2 plans.
SVN Frequently Asked Questions
- What is Subversion?
Subversion is a collaborative software tool for developers. It allows distributed workforces and teams that work simultaneously on the same codebase and to keep track of each other's progress while saving a revision history.
- Do I need special software to use Subversion?
No, you do not need any special software to run Subversion. Subversion can be run from the command line — which is why many programmers refer to it as "SVN" — as well as on a live server. SVN is not a software, but instead, a collaborative function.
- What programming languages does Subversion support?
Subversion supports a variety of programming languages. These include language bindings for C#, PHP, Python, Perl, Ruby, and Java. Subversion as a computer program is written in the programming language "C".
- What are the alternatives to Subversion?
Git is a widely used solution for version control and is probably the most commonly used alternative to Subversion. There are also over 20 commercial version control systems available from many leading software and hardware manufacturers. You can also use CVS, which was a predecessor to Subversion, but it is no longer in active development.
- What are the requirements for Subversion web hosting?
The biggest requirement of Subversion is version compatibility on both the server and client-side. It can run with relatively little disk space, but its server and the client will not be able to sync if they are more than 1 major release apart.
Subversion can be integrated into any major server version. If a server has the ability to run Apache Portable Runtime, then it should have no problem running Subversion.
- Do I have to run a web server myself in order to use Subversion?
No, you do not need to run your own web server. You simply have to purchase a hosting plan or use your existing hosting plan to install it on a web server. Some hosting plans like SiteGround only offer Subversion with dedicated hosting plans.
- Can Subversion be used on a shared hosting plan?
You can use Subversion on a shared hosting plan, providing your project requirements are not too demanding. However, if your project becomes resource-heavy and demanding, you may need to factor in a scalable host so you can upgrade to a VPS or dedicated hosting plan. To get the best deal on repository hosting, you need to consider your demand for resources.
- Can Subversion be installed by a novice?
You can install Subversion as a novice, though if you have never installed programs on a web server manually, you may find this task slightly difficult. There is no one-click installer for Subversion and as such, you would have to rely on using the command line for the installation process.
You may want to contact your hosting provider for instructions on installing it onto your server.
- Do I have to know how to program to use Subversion?
To use the program itself, you do not need to know how to program. You can find scripts that you can learn from and use online. However, since it is geared for software developers, programming knowledge is expected to get the best value out of using it.
- Is support available for Subversion?
There is no official support channel available, however, the community behind the project is rather active and you can find answers to most questions on their mailing list and the project's wiki. There are also other social networks like Reddit where you can find relevant threads on Subversion.
- What distinguishes Subversion from CVS as a version control solution?
CVS was used to coordinate developers who worked at different times to prevent them from overlapping each others' work. On the other hand, Subversion replaces and improves on CVS, which is no longer in active development. Another major benefit of using Subversion is that it is easier on resources than CVS as it requires much less server memory.
- Does Subversion support languages besides English?
Yes, Subversion has been translated into many other languages. Some of Subversion's international translations include French, German, Italian, Japanese, and Spanish. The amount of online support material may be considerably less for other, less common languages.
- What license is Subversion released under?
Subversion is released under the Apache license and can be used and distributed for free. Due to it's flexible and free licensing, Subversion is widely used commercially as well as in smaller teams.
- What is an SVN repository?
A Subversion repository is database that is made up of a collection of files and directories. As opposed to a conventional database, an SVN repository records the changes that have been made to all files and directories located in the database.
- What is the difference between SVN and Git?
While both Git and Subversion share the functionalities of a version control system, they are fundamentally different. Subversion is a centralized directory, while Git is distributed with more, smaller directories. Git stores content in smaller chunks, while SVN stores larger files. To see a more detailed comparison, see Subversion vs. Git.