I have recently acquired a passion for subversion control (SVN) through my work with the SiteX project.  I gave another developer in the SiteX community a charge to figure out SVN for version control and collaborative development.  By the end of the weekend our development process had been taken to the next level.

My SVN client software of choice is TortoiseSVN.  This program installs in Windows and creates a new menu when you right click any file or folder.  You can create your own repository or connect to an existing external repository.  The repository is the place where your stuff is stored and accessed.  Files are “committed” to the repository along with a note.  This creates a revision.  You can “update” you files to download the latest revision.  When you’ve reached an acceptable stable “version” of your software, this can be “tagged” and stored in its current state for easy access later on.  TortoiseSVN also includes a decent diff tool which shows you the differences in two side-by-side files.  This is great for comparing a new file to an old revision or merging two new files together.  Access can be controlled to your SVN as well.  There are so many features and options it is impossible to describe them all here.

Currently, the SiteX project uses Sourgeforge.net for our SVN hosting since it is integrated with some nice project management tools all bundled via their website for free.

SVN is so popular that there are now server hosts that specialize in private, backed up SVN packages which include ticket management (like Bugzilla and Trac).  If I had an extra $30 laying around each month, this would definitely be a good investment.  Many include great features like cluster computing, RAID 5, and 10 minute backups.  I’ve even found one host that has a free account (no tracking or web-based SVN browsing included).

I personally am beginning to use SVN for more than just SiteX.  I’ve now expanded my personal repository to track revisions of documents and other web projects.  That way I always have a record of changes.  If you’ve never tried out SVN and you manage any sort of code that changes periodically, you simply MUST check it out!