Jelmer Vernooij: Book Review: Bazaar Version Control
Packt recently published a book on Version Control using Bazaar written by
Janos Gyerik. I was curious what the book was like, and they kindly
provided me with a digital copy.
The book is split into roughly five sections: an introduction to version
control using Bazaar's main commands, an overview of the available workflows,
some chapters on the available extensions and integration, some more advanced topics
and finally, a quick introduction to programming using bzrlib.
It is assumed the reader has no pre-existing knowledge about version control
systems. The first chapters introduce the reader to the concept of revision
history, branching and merging and finally collaboration. All concepts are
first discussed in theory, and then demonstrated using the Bazaar command-line
UI and the bzr-explorer tool. The book follows roughly the same
track as the official documentation, but it is more extensive
and has more fancy drawings of revision graphs.
The middle section of the book discusses the modes in which Bazaar
can be used - centralized or decentralized - as well as
the various ways in which code can be landed in the main branch ("workflows").
The selection of workflows in the book is roughly the same as those in the
official Bazaar documentation. The author briefly touches on a number of other
software engineering topics such as code reviews, code formatting and automated
testing, though not sufficiently to make it useful for people who are
unfamiliar with these techniques. Both the official documentation and the book
complicate things unnecessarily by listing every possible option.
The next chapter is a basic howto on the use of Bazaar with various hosting
solutions, such as Launchpad, Redmine and Trac.
The Advanced Features chapter covers a wide range of obscure and less obscure
features in Bazaar: uncommit, shelves, re-using working trees, lightweight
checkouts, stacked branches, signing revisions and using e-mail hooks.
The chapter on foreign version control system integration is a more extensive
version of the public docs. It has some factual inaccuracies; in particular, it
recommends the installation of a 2 year old buggy version of bzr-git.
The last chapter provides quite a good introduction to the Bazaar APIs and
plugin writing. It is a fair bit better than what is available publically.
Overall, it's not a bad book but also not a huge step forward from the official
documentation. I might recommend it to people who are interested in
learning Bazaar and who do not have any experience with version control yet.
Those who are already familiar with Bazaar or another version control system
will not find much new.
The book misses an opportunity by following the official documentation so
closely. It has the same omissions and the same overemphasis on describing
every possible feature. I had hoped to read more about Bazaar's data model, its
file format and some of the common problems, such as parallel imports, format
hell and slowness.