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 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.
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.||Git is fully-distributed, meaning it contains multiple redundant repositories. So, each user can have a complete copy of the repository, giving them quick access to file history.|
|SVN is slower since users have to communicate over the network to access the SVN repository server.||Much faster since all operations are performed locally.|
|Subversion has more interface tools than Git.||The primary user interface of Git is through the command line.|
|An SVN server contains all of the of the materials and branches related to the project.||Not everything related to the project is necessarily stored in the same location. This may lead to confusion for users.|
|You can assign distinct permissions to separate files and directories.||Git assumes all contributors to the project have the same permission rights.|
|SVN repositories are larger and take up more server space.||Git repositories are much smaller.|
|Users will only have access to the repository when connected to the internet.||Users can have access when they’re disconnected from the network.|
If something happens to the Subversion server, the repository may be lost completely.
Git is more reliable since each user has a backup of the repository.
Version control includes being able to identify, locate, and address code conflicts. This example shows two versions of code, side-by-side, with a conflict identified in the bottom pane. This is the merge conflict tool in GitKraken, a popular Git GUI.
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.
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.
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.
SiteGround will give you much more power with their cloud hosting. Though, this is also much 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.
For subversion hosting with 100% uptime, 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.
Pros and Cons of Using SubversionTo wrap things up, here’s a brief summary of pros and cons of using Subversion.
- Subversion is centralized which means data is only stored in one place. This keeps things simple.
- You have the option of working with an intuitive graphical interface if you choose an SVN GUI client such as TortoiseSVN or Cornerstone 3.
- Contains the full revision history of all directories, renames, and file metadata.
- Much more simple and understandable when compared to Git for people who aren’t experienced developers.
Cons of Using Subversion
- Subversion is centralized which makes it less ideal for open-source projects.
- SVN isn’t as fast or reliable as Git.
- Users must stay on top of updates since the repositories are all stored on a single server.
- In the event of SVN server failure, changes since the last backup will be lost.
Key resources for all things Subversion. Here you’ll find FAQ, downloads, documentation, forums, and more.
Other features in Version Control
SVN Frequently Asked Questions
- What is Subversion?
Subversion is a collaborative software tools for developers. It allows distributed workforces and teams that work simultaneously on the same codebase to keep track of each other’s progress and saving a revision history.
- Do I need a special software to use Subversion?
No, it can be run from the command line — which is why many programmers refer to it as “SVN” — as well as on a live server.
- What programming languages does Subversion support?
It includes language bindings for C#, PHP, Python, Perl, Ruby, and Java.
- 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?
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 simply have to purchase a hosting plan or use your existing hosting plan to install it on a web server.
- Can it be used on a shared hosting plan?
If your project requirements are not too demanding you can use it on a shared hosting plan. However, if your project becomes too demanding, you may need to upgrade to a VPS.
- Can Subversion be installed by a novice?
If you have never installed software 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. 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 software itself, you do not need to know how to program. However, since it is geared for software developers, programming knowledge is expected to get the best value out of using it.
- Is support available?
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.
- What distinguishes Subversion from CVS as a version control solution?
CVS was used to coordinate developers who worked at different times to prevent them overlapping each others’ work. 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?
It has been translated into other languages including French, German, Italian, Japanese, Spanish, and others.
- What license is Subversion released under?
It’s released under the Apache license and can be used and distributed for free.