Pragmatic Version Control Using CVS
This book is a recipe-based approach to using the CVS Version Control system that will get you up and running quickly--and correctly. All projects need version control: it's one of the foundational pieces of any project's infrastructure. Yet half of all project teams in the U.S. don't use any version control at all. Many others don't use it well, and end up experiencing time-consuming problems. This book describes a practical, easy to follow way of using CVS, the most commonly used version control system in the world. Instead of presenting the grand Theory of Version Control and describing every possible option (whether you'd ever use it or not), this book focuses on the practical application of CVS. It builds a set of examples of use that parallel the life of typical projects, showing you how to adopt and then enhance your pragmatic use of CVS.
Review By: Mark Cole
01/09/2006"Pragmatic Version Control Using CVS" by David Thomas and Andrew Hunt is an easy-to-read "starter kit" on using CVS to version-control a software project. The introduction discusses how version control is mandatory for all software products, providing a practical illustration of how Fred and Wilma use version control to solve a software crisis. Version control is the first leg of the authors' project support tripod. The other two, pragmatic unit tests and pragmatic automatic testing, are covered in other books.
The book discusses what version control is and what should be stored under project management. It also defines basic terms, such as "branches," "tags," and "repository." It shows how to set up a "sandbox" repository and how to create a project. It then shows how to do other simple CVS operations, including updating the repository and dealing with what happens if two people edit the same file simultaneously. The rest of the book is a how-to guide to using CVS--how to access the repository; common CVS commands; using tags and branches; creating a project--with a nice organizational directory structure, using modules and versioning third-party code. The appendices include "CVS Summary and Recipes."
"Pragmatic Version Control Using CVS" covers what it takes to start using CVS. It clearly explains why document management is important to a software project. Overall, it is easier to understand than my previously used CVS handbook. The book's "recipes" are basic incantations that experienced CVS users type in everyday, while I was hoping for more complicated "Joy of Cooking" recipes that might make life simpler. Still, "Pragmatic Version Control" can be used as a reference book.
There are some weaknesses in this book, but they are primarily weaknesses in CVS itself. I would like to have seen a section on troubleshooting CVS error messages. It also would be nice if there were more details on using GUI front ends or IDEs to drive CVS and whether this practice is encouraged.
I like the suggestion of creating a sandbox repository on my own box. Playing in a sandbox repository seems like an excellent way to experiment with CVS before committing to it.
I highly recommend "Pragmatic Version Control Using CVS" to those who are new to CVS, as well as to those who use CVS but would like a more practical user's guide then what is available online.