the flying squirrel

Darcy Casselman's weblog. Just like old times.

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, Mercurial (hg) and Bazaar (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
Disadvantages

Mercurial

I actually know very little about it. Joel says it's what they use at FogCreek...

Advantages
Disadvantages

Bazaar

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

Advantages
Disadvantages

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

As an aside, the Ankh SVN 2.0 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.