Exaile recently switched from Bazaar to Git. This plan was initiated by Dustin Spicuzza, who has been leading the project recently. Why did we switch? Because all of us prefer Git to Bazaar. But that’s an oversimplification of my stance on the whole DVCS thing.
After the BitKeeper debacle, the phrase distributed version control system started bubbling up as the buzzword of the year. In a short while, the three major contenders became obvious: Bazaar, Git, and Mercurial. At the time I already had experience with SVK (a semi-DVCS that extends Subversion), which I had used on Ruby.NET and Exaile, but when Adam moved Exaile to Bazaar, I went all-in on Bazaar.
I loved nearly everything about Bazaar, and I instantly “got” it. This was in contrast to Mercurial, which I gave up trying to understand, and to Git, which I wouldn’t have touched if I didn’t have to use it at work. I really wanted Bazaar to be popular. I still agree with the general sentiment that it has excellent usability, especially compared to Git.
But its modest popularity crashed under Git’s dominance. Git was getting all the attention and all the improvements, while Bazaar stagnated. Bazaar’s biggest promise from the start, that it would eventually be optimised for speed, either came too late or never materialised—I still don’t know which. Its code documentation languished, and I had to go digging around just to write a simple commit bot.
During a casual chat among the active developers at #exaile, we found that our collective knowledge of Bazaar had deteriorated so much that we couldn’t remember how to perform some relatively simple operations. We decided to move on. At the moment, most of our services have moved to GitHub. We’re still keeping the Launchpad site to refer to old bugs and for the web translation service (the latter is not available in GitHub).
Note: I published this article in 2019, but it was fully written in 2014 and is obviously not timely anymore. It still expresses my thoughts quite well, so I’m publishing it belatedly, but backdated in order to not confuse people.