Introduction
In 2008, the software development world witnessed one of the most heated debates in version control history: Emacs' transition to a new version control system. At the time, CVS, while widely used, was deemed obsolete. Two main options stood out: Git, created by Linus Torvalds for the Linux kernel, and Bazaar (Bzr), a GNU project maintained by Canonical.
2008: A Controversial Decision
In March 2008, an intense discussion broke out on the emacs-devel mailing list, with 236 messages exchanged. Developers compared the performance of Git and Bzr with revealing benchmarks. Andreas Schwab, a key developer, stated that Bzr was incredibly slow compared to Git. For example, 'git log' took 0.012 seconds, while the same command with Bzr took 21.5 seconds.
Stefan Monnier, the lead maintainer, insisted that Bzr needed to be 'fast enough' to be considered. Yet despite the numbers, the Emacs project decided to adopt Bzr, raising questions and criticisms.
2008-2012: The Long Tail
Despite initial criticisms, the transition to Bzr took place. However, performance issues persisted, leading to frustrations among contributors. The community continued to debate the merits of Bzr versus Git, and some developers even created experimental branches using Git in parallel.
2013-2014: The Breaking Point
In 2013, a major issue arose when the ELPA (Emacs Lisp Package Archive) branch caused complications with Bzr. This was the last straw for some developers. In 2014, Eric S. Raymond (ESR) finally took the initiative to migrate Emacs to Git, a decision that was well-received by the majority of the community.
Aftermath and Lessons Learned
The Emacs Bzr saga is an example of the importance of choosing the right tools for software development. It also shows how decisions can have a lasting impact on a community. Today, Git has become the de facto standard, but this story serves as a reminder that tool selection should be based on performance and scalability criteria.
Conclusion
The transition of Emacs from Bzr and finally to Git is a lesson in humility and adaptation for any tech company. As a decision-maker or developer, staying informed and flexible in the face of technological evolutions is crucial.
Let's discuss your project in 15 minutes.