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.
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…
- 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.
- Subversion integration doesn’t work in the latest Windows release.
I actually know very little about it. Joel says it’s what they use at FogCreek…
- Good Windows support.
- Most mature Visual Studio integration (not saying much).
- I find the terminology a bit odd…
- Subversion support is confusing and/or alpha-ish.
Popularized by the Ubuntu project, bzr seems less user-hostile than the others. I’m only really looking into it seriously now.
- 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.
- 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 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.