Bazaar Version Control Thoughts

It’s been a while since I’ve posted on this topic, but I’ve been giving a lot of thought to open source distributed version control systems (DVCS) again. In my opinion, this space has essentially become a three-horse race, between bazaar, git, and mercurial. At this time, I can’t even guess which is used more between git and bazaar. Git powering projects like the Linux kernel, gnome, not to forget everything on github. Bazaar, however, is the VCS of choice for Launchpad, which hosts a ton of code too. Mercurial, isn’t a bad system, but from my perspective, it’s not different enough from git to bother, while I definitely see the niche that bazaar fills. Obviously, my opinion on Mercurial is not the only one, but I’ve talked about git before, though I might want to revisit the subject.

Today however, is about Bazaar. Mostly, I find Bazaar fills a really interesting niche that I hadn’t realized before. Developers had long been talking about the need for version control, and systems like Subversion have often been viewed as simple introductions into these concepts, since they’re pretty straightforward to use. However, Bazaar is fantastic, because in many ways it takes the simplicity (and familiarity) of a system like subversion, but applies distributed concepts that will benefit all developers.

I’ve a firm believer in DVCS, particularly with the ease of branching, merging, local commits, easy sharing… Bazaar works as a great tool. Personally, it hasn’t replaced git as my preferred VCS system, but I’ve been using it a fair amount lately on Launchpad (and it’s Launchpad integration is flat amazing), and I’ve come to appreciate the niche that it follows. Basically, if something like git, which I can see why a person would find fairly alien, is unpalatable for some reason, I think bazaar bridges the gap in an intersting fashion, and can bring people into the distributed mindset with a minimum amount of pain.

My feelings toward bazaar are mixed. It’s a really capable system, it works really well, and it hides away it’s complexity in a way that would be really non-intimidating to new users. But, it’s so simple, that certain things don’t work in a way I like. I don’t like that I need to create new directories for branches. I don’t like that I can’t seem to pull commits from a remote repo without performing a merge (something I use sometimes to aide in certain merges). I don’t like that I have to use a more complex command to get the ‘real’ revision history (ie, the one that includes merges).

Bazaar is awesome. And I’m going to gladly continue using it for projects hosted in Bazaar. But for me, Git still wins.