I have a bit more to say on distributed version control, some theories on how it might be used in large agile teams, but I don't necessarily want to touch on that today. I've decided I really need to read the rest of the Mercurial book (I read most of it!), as there's things in there that help explain how the extension mechanism and hook system works, and how you can use them to promote pre-push process. Right now, though, I quickly want to respond to a few of my initial impressions of Mercurial:
- Local branches and rebasing are supported in Mercurial through extensions. The transplant extension, Rebase extension, and Local Branches extensions are available and allow you to do everything I mentioned. This is the benefit of using a piece of source control that has a plugin architecture and is easy to extend. You get extensions for everything. That said, I'm convinced I wouldn't use any of them (save potentially rebasing) now that I've worked with mercurial more.
- There's an extension for Mercurial that provides an ascii graphical log of branches / merges. It's pretty awesome. I'm sure there are other GUIs available as well, and hey… maybe I'll make a WPF one in the future?
- The internal branching system works fairly well, but after using it I've decided they're almost not worth using. Instead, I'm now using separate repositories, even for long lived branches. This means not necessarily knowing which branch a change comes from, but I'm okay with that.
Also, in the comments, Programmer Joe commented that he'd been thinking about distributed version control, but wants to use me as a guinea pig. Unfortunately, I'm in a very small team of people, so I don't think I'd be that usefully as a guinea pig for large teams. I certainly have theories on how a large team structure should work (which I will post about), but nowhere to try them out. I'd love to do some large team work with Mercurial to see how it'd work out. Anyone know a large team looking to be adventurous?
Well we’re pretty small at this point too. Only three programmers on a team of eight. Maybe Orbus Gameworks will hire a bunch of people before we do and I can still get my wish.