On choosing Bazaar for DVCS

I’ve decided to use Bazaar as my distributed version control system for personal projects. Like everyone else, I was also considering Git and Mercurial. Here’s a nice comparison of DVCS systems. My priorities are (1) that it be easily portable across platforms and (2) it be very easy to use. Git loses on both counts, while the other two are tied. I don’t care at all about performance because my projects are small. The feature that broke the tie between the other two is renaming. Bazaar treats renaming as a primitive operation, whereas Mercurial treats it as a copy and delete. The result is that Mercurial doesn’t show the log of the “copied” file unless you explicitly say “hg log –follow”. In the beginning of my projects, I rename files and directories a lot to make things more manageable. I want a system that makes it easy and obvious. Nevertheless, I’ll be forced to use all the other DVCS tools if I want to tweak open source code. So picking Bazaar doesn’t change the fact that I still have to learn the other two. Thankfully, their main operations are so similar that it shouldn’t take long to figure them out.[ed: I’m using etckeeper with Git to track changes in my /etc directory]


  1. Jakub Narebski

    …while Git does rename (and copy) *detection*, and not *tracking*. Note also that rename tracking is usually done using some kind of inode / file-ids system, with its usual disadvantages.

  2. Pingback: Bazaar Flow « Handwaving

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s