Subversion (SVN) Introduction and Resources
If you've ever worked on a group development project without version control, you know how much of a disaster it can be.
If any user can make changes to any file at any time, how do you manage all those changes?
You can't — not without some kind of version control software.
Version control software lets you manage and track changes to your source code, no matter how many cooks are in the kitchen, as well as maintain current and historical versions of your files, web pages, and documentation.
You know that version control is necessary — but which software should you use?
What Is Subversion?
Subversion (also called SVN) is one of the most popular version control software applications: it's used on nearly half of all open source projects.
SVN is open source and available for free. It's been used in plenty of big projects including Apache Software Foundation, Free Pascal, FreeBSD, GCC, Mono, and SourceForge. SVN was first developed in 2000 by CollabNet, as an alternative to then-popular Concurrent Versions System (CVS).
Subversion keeps all your files, including a complete history of all changes, in a central database on your file server called a repository. Using a Subversion client on their own computers, developers who are working on the project can view these files and all changes to them.
Each person with access to the project has their own working copy of each file. The working copy is sometimes called a "sandbox," because you can make whatever changes you want without committing them to the repository.
Any file in the repository can be tagged as belonging to a specific version, and you can then re-create any version of your project with certain tags.
You can use Subversion to maintain separate versions of your project, too. The main version is called the "trunk," and other separate versions called "branches" can also be created and maintained separately. You can also merge branches back into the trunk. Branches are often used to test out new features, and then merged into the trunk once they're stable.
Why Use Subversion?
Subversion has a few advantages over other popular version control systems such as Git.
For one, the fact that all of the project's files are kept on a single file server, instead of being duplicated on each user's computer, makes Subversion more scalable for large projects. Once a project gets into the hundreds of gigabytes, it's not possible for each developer to keep all the files on their individual computers.
Keeping all the files in a central database also means that the Subversion client is going to run faster on your computer, since it only pulls the information it needs from the database instead of working with all the files at once.
Subversion is also a good choice for beginners to use. It has a clean command line syntax that's easy to learn, and provides enough built-in safety and abstraction for beginners and average users.
Ready to get started managing versions with Subversion? Check out these resources to learn more and become a pro.
Learning More About Subversion
Not sure if Subversion is right for you? Find out more about its strengths and weaknesses and how it compares to other version control software.
- Version Tracking With Subversion (SVN) For Beginners: this basic guide will give you an overview of how the Subversion client works.
- Subversion vs Git: Myths and Facts: a list of 12 myths and facts about Git and Subversion, so you can compare the two with an open mind.
- Apache Subversion FAQ: this FAQ answers dozens of common questions about Subversion.
Before you can get started, you need to install the software. Here's how.
- Installation of Subversion on Ubuntu, with Apache, SSL, and BasicAuth: basic instructions on how to install SVN on Linux.
- SVN — Environment Setup: all the commands you need to get Subversion installed and set up.
- Subversion — Community Help Wiki — Official Ubuntu Documentation: how to setup Subversion alias SVN on Ubuntu.
- Setting up Subversion on Windows: how to get a small Subversion server and client going on Windows.
Once SVN is installed, use these tutorials to learn how to use all of its features.
- SVN Tutorial: this ultimate online guide will walk you through the basic concepts of SVN, all the way through resolving conflicts and branching.
- How to Use Subversion: a guide for WordPress plugin developers from the WordPress Codex.
- Subversion Basics — Apache OpenOffice: instructions on performing basic development tasks using Apache Subversion.
- TortoiseSVN: A Subversion client for Windows: a complete guide on how to use TortoiseSVN, a free and open source Windows client for Apache Subversion.
Watch these video tutorials to see SVN in action.
- Learn To Install SVN in Five Easy Minutes! Pluralsight: see how easy it is to install SVN on a Windows server in this excerpt from John Somnez's course "Introduction to SVN."
- Setting Up SVN for beginners: another easy tutorial on how to set up SVN for the first time.
- Basic SVN Tutorial: an easy-to-follow tutorial for beginners on how to use SVN.
- Subversion vs Git: this video shows you the main differences between these two popular version control applications.
- SVN-Branching-Trunk-branches-tags-step-by-step: a tutorial on using tags, branching, and merging with SVN.
- Best Practices for Subversion (SVN): get the most out of SVN by following these best practices.
For more in-depth learning, check out these books on SVN.
- Version Control with Subversion (2008) by Pilato, Sussman, and Fitzpatrick: a free book about SVN written by some of the developers of Subversion itself.
- Pragmatic Guide to Subversion (2010) by Mike Mason: a beginner-friendly, easy to read book to quickly get you started using Subversion.
- Comprehensive Subversion: how to setup a complete development environment with Apache Subversion SVN.
- Fundamentals of Software Version Control: a complete course on learning software version control, including overviews of Subversion and four other popular version control systems: Perforce, Team Foundation Server, Git, and Mercurial.
Take Control of Development With Subversion
With these resources, you're now ready to start tracking versions and taking control of your development projects using Subversion.
Further Reading and Resources
We have more guides, tutorials, and infographics related to coding and development:
- Subversion Hosting: find out what web hosting companies offer good deals that include Subversion.
- Ubuntu Primer: learn all about one of the most popular Linux distributions — an excellent base for MantisBT hosting.
- Object-Oriented Programming: learn about the wide range of object-oriented programming languages — some may surprise you.
Would the Internet Survive the End of the World?
Have you ever wondered what a major catastrophe would do to the internet? Check out our infographic, Would the Internet Survive the End of the World? It's possible we could all be destroyed but the internet would live on.