Why I think Bazaar is better than Git

Two weeks ago, I have started using Bazaar instead of Git for a few projects. Before I go on I must say I used both Bazaar and Git on small personal projects. I may have a different conclusion for very large projects, but since I have no experience with them, I don't write about that. I also don't have an in-depth knowledge of Git beyond its common commands. I can actually hardly think of anything else I use than the following: init, clone, add, checkout, merge, reset, push, pull, commit, rebase, stash, rm, log, diff. I only learn and think about it as little as possible to get by with daily tasks and projects.

Why do I like Bazaar better?

Not because it's a GNU project, but because revision numbers are easier for the human brain than SHA1 hashes. It's easy to keep in mind that at the revision 611 of the branch I'm currently using, I made a nasty change with consequences I only noticed about 50 commits later. How did I figure that out? Not the most efficient or impressive way: I used bzr revert -r xxx, several revisions earlier, then went up in the revision numbers, quickly narrowing to the revision that was the source of the problem. A simple bzr diff -r 610..611 allowed me to figure out the line that caused problem. Nothing that couldn't be done with Git (or Bazaar) in much more efficient ways, but the time investment in learning the technique to do it with Git would have taken longer.

As someone on #bzr pointed out, you will probably think that I could surely use something like git bisect (and in fact bzr has a bisect too), but with the revision number, which is friendly to my memory, I didn't need to use it or had to look for such tool.

With Git, you can also (as someone else pointed out), use HEAD~xx and go back like this. Agreed, this might be a more human friendly way than using hashes, but that number won't refer to the same revision if new commits are made on the branch. You can do 6ff87c4~35 but it doesn't make sense to me either. The revision number is easy to write on a piece of paper, or memorize for later.

As you may now understand, I am not a power user with all the features a dvcs tool has to offer; that's true for both Git and Bazaar. I don't have much interest in becoming one either, unless I really need to. What I love to do is to write down a revision number on a real piece of paper with a few notes. Tomorrow I'll find it on my desk, and the whole process of dealing with revisions will feel friendlier and familiar. Bazaar is not only a good revision tool for my small projects, it is a good tool for the brain.