I’m rather used to Subversion as my source control system of choice. I use the very nice http://xp-dev.com/ for hosting of engine code, for example, and I have a few other SVN servers for hosting my own personal projects.
However, SVN breaks down a bit with branching.. branches can get messy.. and it wouldn’t be the first time I’ve managed to kill a repository with a branch that just hasn’t gone in properly. From looking around my backup drives to clean them up the past few months, I’ve spotted a pattern I used to get around this - multiple local copies all over the place from different revisions, named with different experiments I was trying. Obviously this isn’t clean in the slightest, and it’s also rather confusing as to what the latest version actually is.. as I’ve counted twelve variants of SGZEngine all with slightly different bits and pieces, and some cleaner than others. This is a problem…
Enter the distributed version control systems!
There are two major ones that get touted about a fair bit these days - Mercurial and Git. My self imposed challenge for the next two weeks will be to have a look at Git and try get my head round it to start pushing stuff over, as it means I can branch out my little experiments much easier and tag them all properly, without losing information on what they are.. and anything important or fun, can be committed back onto the server.
The following two weeks will be Mercurial, and I should hopefully have a favourite at the end of the month.
Or I suppose, I could always go back to CVS…