Pragmatic Version Control Using CVS

Pragmatic Version Control Using CVS

Average Customer Rating: Recommend

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 a foundational piece 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. Version Control, done well, is your "undo" button for…

Product details and pricing info

10 Customer Reviews Posted

Page:  1 | 2  Next »

Just enough CVS to keep you moving
If you are new to a particular topic and there is a Pragmatic Bookshelf edition for it, then I wholeheartedly recommend buying a copy before you buy any alternate version. They are generally well written, up-to-date and tell you just the stuff that you really need to know. This book is exactly that. There is a lot of information and books around on CVS version control tool but this is the one that well get you going the quickest.
2006-10-13, 0 of 0 people found this review helpful, Rated:
Better than nothing
With this book at my side I still ended up frequently hunting for information out on the web. CVS looks at the entire concept quite a bit differently than the other SCMs I've used and the command line interface is archaic. This book fails to provide a good conceptual model of what is going on in CVS (as opposed to SCMs in general) which might be able to allow using CVS without resorting to a purely cookbook approach.
The book only briefly deals with the GUI interfaces that might be an improvement over the command-line approach. Those that they do mention are Windows only.
2006-04-20, 4 of 4 people found this review helpful, Rated:
How to do it
I've been grappling with the Concurrent Versioning System (CVS) for years. Moreover, I've been misusing it. Baffled and intimidated by its cryptic syntax and concepts, I've missed out on the power of branching and tagging, and the way these tools can be used to clearly demarcate project releases and versions. Using CVS as little more than a safer place to keep code than a local hard drive and an easier way to pass code around than FTP, I and my teams have failed to benefit from version control's true purpose. Checking code into the mainline only, we've found ourselves holding off on writing or checking in new code while a release is underway, and being forced to add new, untested code to a stable past release in order to fix a bug.
CVS's documentation has never helped matters. The free online manuals (aka "The Fish Book", "The Cederqvist", etc.) are classics and miss no detail documenting CVS's complex and option-laden commands, but say little about what exactly to do with the commands in order to run a successful software project. Other commercial CVS books essentially have been longer-form rewrites of the original manuals. And through it all, CVS's syntax has remained complex and intimidating.
Along comes Pragmatic Version Control Using CVS. With clarity, brevity, and humor, its authors show that version control can and must be the centerpiece of any development process, and they show how to make the humble, aging CVS work as that centerpiece. Taking the successful 80/20 approach, they cover only the features necessary to support the important things in software project execution: maintaining separate versions, marking releases and bug fixes, merging fixes to an old release into the latest version, and even bonus topics like managing third-party code. They take an Occam's Razor to CVS's syntax, leaving you with a small, essential slice that's easy to remember and use. Alongside this syntax, the authors suggest idioms, naming conventions, and techniques. What you end up with is the bare bones of how to run a software project. You start to feel like you're not even using CVS - that you could be using any version control system. The syntax becomes secondary and the process takes center stage.
Here is a summary of their approach: (1) Develop on the mainline; (2) Branch only from the mainline, and only when you're ready to put out a release (or experiment with some great departure from the current codebase); (3) Tag the branch when the release is done; (4) Return to the branch to fix a post-release bug; (5) Tag the branch before and after the bug fix; (6) Merge the bug fix back into the mainline; (7) Get back to work on the mainline; (8) Go home at a reasonable hour. In between all these steps, part of your team can work on the latest version while others launch or patch a release. Old work will not impede new work; new work will not pollute old work. The authors put the "concurrent" back into "CVS."
That's the undergirding of a solid development process. All you need is a tiny subset of CVS's baffling syntax to do it. The book describes the subset.
Please understand that this is not a definitive CVS reference. The authors don't document anything unrelated to the process. Armed with the common sense gained from the Pragmatic book, you can go to the original docs and find what you want.
I read this book over a year ago, and have waited until now to review it. In that time, I've successfully implemented most of its practices in the team that I lead. We can pull down the code tree of any of our past releases in an instant, fix a bug, and redeploy, all without affecting current development efforts - or having those development efforts affect the old release. There's never a question as to which version of the code we're working on. We're safer, smarter, and faster. All it took was a 175 page book, a free version control system, and a bit of open-mindedness. If you're not already doing what this book shows you how to do, start now.
2006-04-03, 5 of 5 people found this review helpful, Rated:
Chatty but Misses Information
I bought this book to come up to speed on CVS for a new project and I had a mixed experience with it.
I like the author's simple examples. For example, using a short text list of colors as sample files instead of source code. These made it easy to focus on the author's intent without getting confused by the example.
However, I had a problem in that the book never really compared CVS to other tools. I have always used source control tools that locked other users out of a file when you edited it: RCS, Clearcase, etc. So I found myself flipping through the book trying to figure out how to do a "get" command. I wish there had been a section describing the CVS philosophy of letting everyone edit and only fixing the merges.
I found the author's chatty style to be distracting. But, on the other hand, I am now successfully using CVS from using this book. So 3 stars.
2006-01-31, 2 of 2 people found this review helpful, Rated:
JATO (Jet-Assisted TakeOff) for CVS
I had already started trying to use CVS (on OpenBSD) and had run into problems. Reading this book flattened out the CVS learning curve. It showed me how to perform CVS-related tasks that come up frequently, and helped me comprehend why I had previously been having trouble. I read most of the book in one day. Definitely a keeper!
2005-08-29, 2 of 3 people found this review helpful, Rated:
Page:  1 | 2  Next »