The Most Emacs Bzr Saga: A Lesson in Ideology vs. Pragmatism
The history of software development is often told through the lens of technical breakthroughs, but sometimes the most instructive stories are those of technical stagnation. The "Bzr Saga" of GNU Emacs is a quintessential example of what happens when ideological commitment to a project's ecosystem clashes with the practical realities of tool performance and community adoption.
For six years, the Emacs development community found itself trapped in a version control system that was objectively slower and less popular than its competitors. This is the story of how a political decision overrode technical benchmarks, and the long, painful road back to pragmatism.
2008: The Political Choice
In March 2008, Emacs began migrating from the aging CVS (Concurrent Versions System). The community was split between two primary contenders: Git, the powerhouse created by Linus Torvalds for the Linux kernel, and Bazaar (Bzr), a GNU project maintained by Canonical.
From a technical standpoint, the competition was hardly a contest. Developers on the emacs-devel mailing list ran benchmarks that revealed a staggering performance gap. One core developer, Andreas Schwab, noted that bzr log was so slow it was "completely unusable," while David Kastrup observed that git log was nearly instantaneous.
The numbers were stark:
git log | head -1: 0.012 seconds vs. Bazaar: 21.5 seconds.- Single-file commit: 0.08 seconds with Git vs. 17 seconds with Bazaar.
Despite these results, Richard Stallman (RMS) made the decision to use Bazaar. His reasoning was not technical, but philosophical: "This question is over and decided. We will use GNU Bzr, because it is a GNU package."
Stallman argued that the GNU project must support its own tools to maintain a self-sufficient free software ecosystem. When critics pointed out that this decision ignored all technical arguments, Stallman maintained that the rule of GNU packages supporting each other helped the system as a whole work better. The decision was final, and the community was forced to adapt.
2008–2012: The Long Tail of Friction
As the rest of the software world migrated to Git and GitHub exploded in popularity, Emacs contributors remained isolated. They were forced to learn Bazaar—a tool they used nowhere else—simply to contribute to Emacs.
This period was marked by constant friction. The mailing lists became peppered with pleas for help to "unstick" Bazaar or reports of suspected memory leaks. The technical debt of the decision grew daily, culminating in 2012 when Canonical laid off the Bazaar development team, effectively stalling the project's progress.
2013: The Breaking Point
By March 2013, the situation became untenable. John Wiegley formally requested a revisit of the decision, noting that major bugs affecting Emacs development—specifically within the ELPA repository—had been ignored for years.
In a subsequent 200-message thread, the tension between the "Czar of Emacs" and the maintainers reached a boiling point. Stallman admitted he was hoping for a "Yes" answer regarding Bazaar's maintenance state, but he lacked the time to actually monitor the Bazaar mailing lists to verify it.
Veteran open-source developer Karl Fogel delivered a sharp critique of this approach:
"Well, really, you don’t have time to pay close enough attention to Bzr development to competently decide whether it’s still a good choice for Emacs... But then why do you think you still have the time & mental bandwidth to make this decision well?"
Stallman's response—"Because more than Emacs is at stake here"—underscored his worldview. To him, the signal sent by abandoning a GNU tool was more dangerous than the inefficiency of the tool itself.
2014: The Migration
The deadlock finally broke through a combination of practical failure and quiet preparation. Later in 2013, Stefan Monnier moved the ELPA branch to Git because Bazaar simply could not handle it. This created a hybrid state where the project used two different tools, but it proved that Git was the only viable path forward.
By August 2014, Eric S. Raymond (ESR) had quietly developed the necessary conversion scripts. In November 2014, the saga ended not with another 200-message debate, but with a seven-word announcement from ESR:
"Commits are open. Have at it."
The Aftermath: A Community Out of Time
The migration revealed the true cost of the six-year detour. Many core contributors, who had been developing one of the world's most influential text editors, had never used Git. The emacs-devel list was suddenly flooded with basic questions: "Good book on Git?", "How can merge conflicts possibly happen?", and a 124-message thread regarding an obscure git pull error.
The "Bzr Saga" serves as a cautionary tale for project leads. While ideological consistency is a powerful motivator for community building, ignoring overwhelming technical evidence and the preferences of active contributors can lead to a stagnation that takes years to undo.