Item description for Open Source Development with CVS by Moshe Bar...
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.
Outline Review 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
Promise Angels is dedicated to bringing you great books at great prices. Whether you read for entertainment, to learn, or for literacy - you will find what you want at promiseangels.com!
Reviews - What do customers think about Open Source Development with CVS?
Great book, a must have CVS reference!! Aug 4, 2006
This book is definitely a must have for all CVS users. Highly recommended.
deadly wrong point May 30, 2005
The author made a deadly mistake. He said "cvs update -j branch" will not work for multiple times merge and use "cvs update -j change_tag_2 -j change_tag_1" instead. But the right answer is that "cvs update -j branch" will remember the last time stop point and start there. No repeat over problem at all. And "cvs update -j change_tag_2 -j change_tag_1" command will undo all chnge made between that two version. This is not trival error, is'it?
I couldn't get past the setup part Nov 16, 2003
The book looks to be well written with lots of details, but I feel the first few introductory pages are insufficiently detailed which prevented me from setting things up. Specifically:
* The examples don't say whether your supposed to be in or above the working directory for various cvs commands. The reader is supposed to assume that current directory for this example is the same place as the current directory at the end of the previous example, but nothing says that. (it's obvious once you know).
* The overview chapter only talks about importing a whole directory tree. It's not clear how to add a directory or a file to an already imported directory tree. Actually, it's explained 20 pages later, but I didn't find that for a while.
* I made a mistake and imported a working dir subdirectory as a top level directory in the central cvs repository. There's no quick overview commands for removing setup mistakes. (Actually, that's shown about 30 pages after the overview). The book doesn't say that importing a subdirectory if you're in the subdirectory, makes it a top level directory in the CVS repository.
I'm sure once I understand what's going on, it'll be obvious. But to do my basic directory setup, and cleanup from a mistake, I had to wade through all sorts of "once it's working" text to find what I wanted.
Also, in the Removing Directories section, he keeps referring to directories without saying whether he's referring to directories in the user tree or under the CVS repository tree.
very useful examples concerning tagging and branching Oct 29, 2003
I've used cvs for a couple of years, but have never really needed tagging or branching until I became a developer on the www.mycibavision.com project. Then, we needed it. Tagging and branching were difficult to grasp for me. This book was critical in helping me to understand what tagging and branching were and how to do use those features. Aside from that, the main reason I like this book so much is that _everything_ has example code to go with it. Even better is that the output from every command is displayed as well. I found myself executing the commands and then comparing the output. I would highly recommend this book.
This book was vital in setting up a robust Linux cvs config Apr 3, 2003
I cannot over-emphasize how useful this book was to me while setting up my cvs repository on Linux. All the examples were germane and were correct, and the gotcha-s were highlighted. I go back to this book all the time. I cannot make any comment regarding the worthiness of this book for folks trying to install cvs on NT, as I blithely skipped over any NT commentary, but as far as Linux/UNIX installation, the book was vital. I fully agree with the high rating this book has enjoyed.