I’ve recently decided to take the bull by the horns and bring a sense of order to my personal projects by using some form of version control. My personal projects don’t normally involve other developers so you might be asking why bother with source control? Well, for several reasons:
- Having a single respository to act as a centralised location for source code retrieval – Although there is only one of me I happen to have several machines (work laptop, personal laptop, PC, etc..) and I move around a lot. A USB key is very useful for taking the latest files with me but I have to be very disciplined or else this system will break down and I’ll end up with multiple versions spread across different machines… and this is what Subversion was designed to help with!
- Being able to revisit older snapshots of a codebase – this is effectively a breadcrumb-like navigation that allows me to traverse the life of a project
- A web-based repository provides a set up for collaboration with subcontractors when the need arises
- I am familiarising myself with a popular method of version control that many companies use.
- I am tired of using VSS at work and I am interested in using an alternative.
I did a fair amount of research and finally settled on creating a free account with Unfuddle, who provide a Subversion Hosting service. Subversion (SVN) is an open source version control system with a client/server architecture. Using an online service like Unfuddle removes the need for me to set up a subversion server on my web hosting package (I would have had to upgrade my hosting package to accomodate this). I already use Tortoise SVN as a subversion client for getting source from projects on Google Code and I am going to stick with this.
Here a some links that I found useful:
Set up your own subversion server