On Subversion


There are many flavors of version control to available to programmers. Subversion is one of them and quite popular due to its ease of use and flexibility. I have used subversion for a couple of months and have found it handles core version control functionality in a very straight forward manner. There are a small number of commands to learn to get started.

Using subversion, sharing with my partner was a breeze. Armed with a URL, user name and password, one simple 'svn checkout ' command was all I needed to get started. Then I could add files to the repository or modify and upload any existing files. My partner could also download and modify the files I had added, or add his own. This allowed us to split the project work between us easily. As long as we would commit our changes and update changes from the server frequently, we were essentially working in the same file system.

Working with a partner there were times when we modified the same file. Subversion automatically merged the changes, as long as they were located in different parts of the file. If the same part of the file had been modified, it would mark those lines in the file. That made it easy to see the changes we each made and decide which code to keep.

Subversion also keeps a history of everything you commit. So if you ever need to get back to a point where things may have worked a little better you have that option. You can also create a copy of a source directory to have a snapshot of a software release, also know as a tag. This comes in handy once you have a program working but want to refactor your code to be more readable and modularized. You do not have to worry about losing that functionality since the code is with the repository and you can always revert.

Here is a quick primer on the basic commands of subversion. If a repository has been created on a server, all you need is the URL, user name and password. Then use the 'svn checkout ' command to create a local copy. You will be prompted for the user name and password. The a copy of the repository files will be downloaded from the server into your local file system.

After you have a copy on your local machine you can use 'svn add ' to add files and 'svn commit ' to upload any changes to the server. When you want to see what files you have modified or created but not added, you can use 'svn status' to list them. You may also see in the status that files have been modified remotely by another user. You can then issue the 'svn update' command to download and merge those changes with your local copy. If you wish to ditch your current changes to a file, the 'svn revert ' command will re-sync your local copy with the server.

Overall subversion is a simple a powerful version control tool. Using subversion can save you many work hours with its history backup. It also eases the pain of transferring files between computers. These features are useful if you are working in a group or alone. Also there are programs available that integrate the features of subversion into your file system manager. This makes using subversion as easy as a right click.


Subversion has a basic yet powerful feature set that makes it easy to structure it how you want and yet manages it enough to make simultaneous work a simple task. I will have to look into the file system integration software you mentioned as it sounds quite handy.

-Nathan Dowd

I agree, subversion is a great tool, especially for group projects. I'm also glad you mentioned the revert command. I had forgotten about it since I hadn't ever really used it. It might be useful as we get into the final stages of our project.

Evan Yakowicz

Leave a comment

About this Entry

This page contains a single entry by reis0140 published on November 1, 2011 9:30 AM.

Group Think or Group Stink? was the previous entry in this blog.

On Unit Testing is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.