Search

Bazaar: First Impressions

A few weeks ago, I switched from using Subversion to Bazaar for versioning my projects at work. So far, my impressions have been overwhelmingly positive.

Bazaar is a distributed version control system- unlike Subversion, which has a master repository that everyone checks out and must synchronize with, every Bazaar repository is first-class. This leads to a good deal of flexibility in workflow. However, what I’ve found to be Bazaar’s most compelling feature doesn’t really have much to do with its distributed nature. In Bazaar, branching and merging are the near-trivial operations they ought to be.

How much this affects your daily workflow really can’t be overstated.[*] Our testers work in a different location from our devs and often have schedules that vary from ours significantly, so there’s a fair bit of latency that happens during the testing / bug-fix phase of the cycle. How Bazaar makes it all better:

ME: Ok, bug fix time.
cd infernal-widget
hack hack hack
bzr commit -m "fixed the bug with the demonic fompulator"

ME: Yay, last one in the queue! Let’s push this fix to the central repository so the testers can rake it over the coals.
bzr push https://where.our.stuff/is
ME: Now we start on a new feature. We don’t want to do this on what’s still slated to be our stable release, so we’ll create a branch for it.
bzr branch ../internal-widget-kitten-mill
cd ../internal-widget-kitten-mill
hack hack hack, until...

TESTERS: Um, hi. So your fix causes green smoke to pour out of the server. Also, it killed someone in the next building when we turned it on.
ME: Bugger.
bzr commit -m "work on the kitten mill" # save my work on the feature branch in a local commit
cd ../infernal-widget
hack hack hack
bzr commit -m "no, really, fixed the demonic fompulator"
bzr push https://where.our.stuff/is

ME: Yeesh, that should do it. Now, I’d probably like that bug fix to be in my feature branch, too…
cd ../infernal-widget-kitten-mill
bzr merge

ME: That’s it? Didn’t this used to royally suck with Subversion? Ah, bliss.

—–
[*] I guess it has not made puppies and rainbows appear from thin air. Perhaps it is a failure after all.

Write a comment