Dabbling in distributed version control

The new workplace uses Subversion for version control. That’s cool. I know Subversion. It works, and it’s well-supported everywhere.

For ages, though, I’ve been wanting to try out distributed version control systems, but except for putting a few personal projects (which no one else is working on, defeating much of the purpose) in git, I haven’t had the chance. Now I do! Support for pushing to Subversion repositories is almost a requirement to get a new DVCS off the ground.

Work is in C# in Visual Studio on Windows. Supporting those things is helpful too.

Choices come down to [Git](http://git-scm.com/), [Mercurial](http://www.selenic.com/mercurial/wiki/) (hg) and [Bazaar](http://bazaar-vcs.org/) (bzr):

### Git ###

Linus Torvalds coded this up on a weekend to deal with the Linux kernel source. With lots of other projects signing on, it looks like it might win as the standard on Linux at least…

##### Advantages ####

* I’ve started using it for stuff on Linux.
* Fast and space-efficient.
* A friend has been using it for a while, and I’d like to work with him on stuff one of these days.

##### Disadvantages #####

* Subversion integration doesn’t work in the latest Windows release.

### Mercurial ###

I actually know very little about it. [Joel](http://www.joelonsoftware.com) says it’s what they use at FogCreek…

##### Advantages #####

* Good Windows support.
* Most mature [Visual Studio integration](http://sharesource.org/project/visualhg/wiki/) (not saying much).

##### Disadvantages #####

* I find the terminology a bit odd…
* Subversion support is [confusing and/or alpha-ish](http://www.selenic.com/mercurial/wiki/index.cgi/WorkingWithSubversion).

### Bazaar ###

Popularized by the Ubuntu project, bzr seems less user-hostile than the others. I’m only really looking into it seriously now.

##### Advantages #####

* I like Ubuntu and it’s made by the same guys.
* Canonical actually cares about usability.
* Subversion support is simple and well-integrated.
* Windows support is good.
* Dedicated to inter-operating with other systems.

##### Disadvantages #####

* No Visual Studio support (yet).

So none give me exactly what I want. I think bzr is the closest, though.

As an aside, the [Ankh SVN 2.0](http://blogs.open.collab.net/svn/2008/07/ankhsvn-20-fina.html) Visual Studio integration is actually really good. A little rough around the edges, but still surprisingly good. I’m kinda sad I didn’t hear about it back when it came out in July. It would’ve made my life a lot simpler.

A good Visual Studio integration is the one thing that’s holding me back from diving straight into bzr and using it for work. I’m debating whether automatically tracking adds, drops and moves trumps being about to work on my own branch without having to tell the server about it.

2008 in review

Well, 2008 was certainly interesting. Let’s do a quick year in review. This was my life, as seen through the blog:

January: [My server was down](http://www.flyingsquirrel.ca/index.php/2008/01/21/were-back/).
February: [I went looking for MP3 players](http://www.flyingsquirrel.ca/index.php/2008/02/21/what-i-want-from-a-portable-audio-device/).
March: Not much, but I [went home for Easter](http://www.flyingsquirrel.ca/index.php/2008/03/13/toronto-stop-over/) and [Ellen is awesome](http://www.flyingsquirrel.ca/index.php/2008/03/23/making-music/).
April: I finally got fed up and [canceled my gym membership](http://www.flyingsquirrel.ca/index.php/2008/04/12/the-gym-conclusion/).
May: [Anime North](http://www.flyingsquirrel.ca/index.php/2008/05/23/live-from-anime-north-day-1/).
June: I discovered I [no longer had a doctor](http://www.flyingsquirrel.ca/index.php/2008/06/19/apparently-i-dont-have-a-doctor/).
July: [Polaris](http://www.flyingsquirrel.ca/index.php/2008/07/12/polaris-day-1/).
August: [Nothing, apparently](http://www.flyingsquirrel.ca/index.php/2008/09/06/my-poor-neglected-blog/).
September: [An election](http://www.flyingsquirrel.ca/index.php/2008/09/08/ugh-election/) and [economic angst](http://www.flyingsquirrel.ca/index.php/2008/09/30/frustrating/).
October: [I lose my job](http://www.flyingsquirrel.ca/index.php/2008/10/17/new-opportunites/).
November: job searching (which I don’t talk about), [Barcamp](http://www.flyingsquirrel.ca/index.php/2008/11/23/barcamp-waterloo/), [home improvement](http://www.flyingsquirrel.ca/index.php/2008/11/29/good-bye-ron/), [Stratford](http://www.flyingsquirrel.ca/index.php/2008/11/09/emilia-galotti-and-romeo-and-juliet/) and [Wiki Links](http://www.flyingsquirrel.ca/index.php/2008/11/03/functional-spec-wiki-links-wordpress-plug-in/). I had a bit more spare time…
December: I start a new job (which I also haven’t talked about yet) and [Christmas](http://www.flyingsquirrel.ca/index.php/2008/12/26/merry-christmas-one-and-all/).

It makes me realize that most of the really significant stuff in my life doesn’t show up in the blog explicitly. It’s there. *I* see it. But only because I know what it is, and I can read between the lines. I suppose it’s kind of unfair that you can’t. But we’re all going to have to learn to live with that.

By far the most significant thing, of course, was losing my job. No small thing, that. If nothing else, it did settle a long-standing argument I’d been having with myself about whether I’d stayed at one place too long and should have moved on. I think in future I’ll be more cognizant of the signs and portents that I could kind of see then but are glaringly obvious now.

Those six weeks of joblessness have given me a fresh perspective on my life and my career. This is actually a good thing. I feel like I have much more of a direction now. I’m not entirely sure of the destination, but there’s more purpose to the journey.

I’m now working for a fairly small company in Kitchener named [Miovision](http://www.miovision.com/). It’s fascinating, and I can see a lot of challenge and opportunities there. It’s a slightly riskier move than a lot of places I could have settled on, but I think whichever way it goes, I’m better off with something like this than going for the safer option.

2008 also made it abundantly clear what a fantastic person Ellen is and how lucky I am to have her in my life. Without getting all mushy, she was the best part of every part of the year, and she single-handedly turned 2008 from what should have been a really crappy year into something really good. She’s my lovely alchemist.