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.

Resource Types

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.

Installing Subversion

Before you can get started, you need to install the software. Here's how.

Using Subversion

Once SVN is installed, use these tutorials to learn how to use all of its features.

Videos

Watch these video tutorials to see SVN in action.

Books

For more in-depth learning, check out these books on SVN.

Online Courses

  • 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.