Item of the Week: Subversion

at 4:09 pm

This quarter of school has presented me with several team-based projects to complete. Most notably, there are a series of projects in XML and a complete Java-based networked game. The first, obvious, challenge was how to manage file control during development that was cheap (aka, free) and easy for everyone to get set-up, but could also be used for various projects.

I decided that the obvious solution was Subversion (SVN) which is a free, open-source, version control system. Thus far, it has answered the call. Beyond just the benefits of having a version control system, it is one that is well-supported with various UI-based tools and good help documents on the Internet.

Specifications

Subversion is a version control system that was developed in 2000 by CollabNet. It’s primary uses (and the ones most important to me) are the maintaining of current and historical versions of documents, user-based access controls, revision history with notes and comments, and file comparing.

Beyond those basic features, it has more under the hood to keep documents safe and sound. There is a complete listing of features on Wikipedia, but the most notable ones are: entire directory tress can be moved and renamed, symbolic link support, parsable output, language bindings, and more.

Subversion uses a standard server-client system. However, after trying several different configurations, I was unable to host a server on a windows machine and connect to it either locally or remotely. This forced me to fall back onto an SVN host which was less than ideal.

Support

Support for SVN is abound even though it is a relatively young program. It has numerous client applications for both Linux and Windows. For Windows, I originally began using Tortoise SVN but backed into Subclipse which is integrated into the Eclipse IDE. Given that most of the applications I am writing this quarter are in Java, this was the most efficient implementation I could muster.

However, there are plug-ins for many other major IDEs including Visual Studio. If you are not developing in an IDE, Tortoise SVN is the way to go because its a light-weight program that can even be integrated into the Windows context menu. This makes working with files a snap.

Subclipse

Subclipse is something I highly suggest using if you are doing Java development inside of the Eclipse IDE. It projects a SVN perspective so you can see a live directory tree of files and work with files or whole directories in a simple UI. The context menus are easy to understand with the exception that all of the commit/merge/compare options are nested inside the ‘Team’ section… not the best name for such options but once you find it, its all okay.

The best part about Subclipse is its simply installation. Because it is an Eclipse plug-in, all you need to do to install it is tell Eclipse where it can download the files from and Eclipse takes care of the rest. Installation instructions can be found here.

Conclusion

My comments on this one are simple: if you need a version control system, there is no need to look at CVS, RCS, or anything else. Get Subversion. You can either host it on your own server (I couldn’t make it work, but more power to you if you can) or find a host out there. I use OpenSVN which allows unlimited databases, users, etc. but is a little slow in terms of response time. I am sure there are even for-pay providers that give better bandwidth and support.

bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark

Leave a Reply