|
| Editor(s)/Author(s) | Ben Collins-Sussman , Brian W. Fitzpatrick , C. Michael Pilato |
|---|---|
| Copyright | 2004 |
| Publisher | O'Reilly Media, Inc. |
| Book URL | click here |
| ISBN | 0-596-00448-6 |
| Reviewer | Colin Steele |
| Review Date | Aug. 16, 2004 |
My bookshelves used to bend, groaning with the weight of computer manuals and books, collected over the years. In a cathartic fit, I recently cleaned up this surplus, winnowing away to just the few books I consider invaluable, or such nostalgic classics that I cannot part with them. And I swore an oath never to collect books that didn't fit these criteria.
Having read Version Control with Subversion, I'm happy to report that this hallowed shelf will be getting a new addition. I found this book thorough, clear, concise, thoughtful, and above all, useful. If you plan on using Subversion, get this book. Soon.
If you know a bit about how this book was written, the quality of this book might come as no surprise. The book's content comes from the same source and process as the software it documents: an open encounter between the authors and the users of Subversion. From the Preface: "...the book was written in the public eye, as a part of Subversion." Ben Collins-Sussman, one of the authors of Subversion, responded to repeatedly fielding the same questions from Subversion users by drafting "The Subversion Handbook." This "FAQ" was then used as the basis of the book, and the results speak for themselves.
I found the book extremely pragmatic, but more than merely a pedantic tutorial. It transcends the "How To" genre by providing not only concrete tools and examples, but also through examining the critical question of "Why?". This sensitivity sets it apart and makes it a invaluable aid, by exposing the philosophical rationales of the authors. It has helped me to understand not only how to use the software well, but to understand the software itself.
I have been using source control since the very first days of my professional involvement in IT. It has saved my bacon on occasions too many to count (without embarrassment). I have staunchly advocated CVS, which has been the stalwart source code control tool in the UNIX world for years. However, as most any user of CVS will attest, the old girl has a few warts, and has begun to show her age. The authors of Subversion aimed to create a successor to CVS, "by creating an open-source system with a design (and look and feel) similar to CVS, and by attempting to fix most of CVS's noticeable flaws." I think Subversion succeeds in this regard, and I have found this book an excellent guide to making the transition from CVS to Subversion.
The book addresses the full gamut of topics I had interest in, and quite a few that I suspect I'll never have need of. Covered topics include the history of Subversion, its features, and installation methods. For those new to tools like CVS and Subversion, there is a clear, thoughtful and useful guide to basic concepts of version control. Those more familiar with version control will find quick gratification in detailed coverage of a typical daily work cycle. The more advanced topics of branching, merging and tagging are given relentless and cogent treatment.
Typical of the book's thoughtful and deep exposition, the chapter on branching includes a section entitled "Best Practices for Merging". This consistent beyond-the-how-to treatment moves the book from the "read it, learn it, give the book to someone else" category into a reference that I know I will return to often.
The structure, features and administration of a Subversion repository are covered in a chapter of their own. The topic of running a Subversion server is examined in similar fashion, including a clear exploration of the trade-offs between running a stand-alone Subversion server, or running it under Apache. The book includes detailed documentation of the Subversion internals, for those wishing to use Subversion as part of a tool they develop. A complete command reference rounds out the main section of the book, and is followed by several appendices. Of these, I found Appendix A, "Subversion for CVS Users", especially useful.
Finally, I think the hallmark of any truly excellent technical documentation is a deep, detailed index. Version Control with Subversion doesn't disappoint on this score.
I just wish all computer books were this good.
About the reviewer:
Colin Steele has worked on many interesting projects. His most recent venture is a business grade wireless network in the NoVa (Northern Virginia) region. In the past he has worked at Kesmai Games and America On-line. At Kesmai he had his fingers in the beginnings of the Voltron engine that The Sims On-line was ported to. If anyone's been looking for that guy who turned the AOL users loose on the Internet, Colin is not that guy. I repeat he had nothing to do with that. ;-) He also had nothing to do with the creation of AIM (AOL Instant Messenger).