The need for a modern source-code management strategy in the
distributed open-source community is paramount. The benevolent
dictatorship model of open-source maintainers is only quasi-stable, but
it is far better than the other extreme: the chaos of democratic code
development.
The best available compromise is the concurrent versioning system
(CVS), which introduces proctored code merging into source code
management. CVS is ideally suited for worldwide open-source
development, and the world is ready for monographs that address the
management issues that Per Cederqvist explicitly avoided in his fine
164-page postscript manual distributed with the CVS tar-ball. What is
the role of a maintainer/manager in establishing test protocols for
code merges? What minimal functional level of developer communications
is necessary for merges to remain stable? Is a maintainer-less release
possible?
These questions go largely unanswered in Karl Fogel's new Open Source Development with CVS.
Fogel's 300-page book consists of chapters alternating between CVS
basics and common code maintenance issues. He includes a few anecdotes
from open-source lore and lots of nonspecific commonsense guidelines on
team software development.
Fogel is at his best when he is engaging us in thinking about what
should and should not be under CVS control. He points out that complex
relationships exist between developing code and its dependencies on
intimately related applications, such as build tools themselves (gcc,
autoconf) or partner applications (e.g., the server's client or the
client's server). His brief discussion of strategies is too short to be
satisfying.
Frustratingly, this book is chock-full of postmodern self-indulgences,
such as his boasting reverence for technological ignorance. The
discipline needed by good maintainers is missing here; Fogel's informal
prose is often grating, and his copious parenthetical remarks are
distracting or bullying (they sure are); one wonders where his editor
was. Ultimately, his management arguments boil down to an endorsement
for the benevolent dictatorship model--a safe conclusion, but one that
seems not to use CVS's merging capability for all it's worth. To the
question of how to run a project, he responds, "Well, we're all still
trying to figure that out, actually." True, and he isn't there yet, but
at least he has the questions right.
--Peter Leopold --This text refers to an out of print or unavailable edition of this title.
The popular first edition was one of the first books available on
development and implementation of open source software using CVS. The
second edition explains how CVS affects the architecture and design of
applications, and has been enhanced with more value-added material
covering strategies, third-party tools, scalability, client access
limits, and overall server administration for CVS.