by Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato Published by O'Reilly Review by Bob Feldman Why did I want to read this book? Version Control is a wonderful thing and Subversion is a great Version Control System (VCS). As a software developer working in a team environment, I use a VCS every day, and consider it an essential tool. Subversion is the new kid on the version-control-block and appears to offer a more flexible and modern approach to version control, so I was naturally curious to learn more about it. This prompted me to evaluate Subversion as a replacement to my current system, and for this task, good documentation is indispensable. Given the newness of Subversion (version 1.0 was just recently released,) it’s difficult to find books about it. So, I was very pleased to find “Version Control with Subversion”. In fact, it’s the only book on Subversion that I could find. This book does a good job of explaining Subversion in detail, including its history, how to obtain and install the software, and how to set it up, use and maintain it. This book is written by members of the Subversion development team--who obviously know what they are talking about; and I found it very helpful in learning about the Subversion features I was interested in evaluating. Subversion is a complex system, and this book appears to cover it all, being both a tutorial and a complete reference. Readers will use this book differently, depending on their skill level and their stake in maintaining a Subversion system. You need not read the entire book to benefit from it. I concentrated on learning the material in the tutorial chapters and left the reference materials for another time, when I needed to learn more. Experienced sysadmins, new users, advanced users and developers will all find useful material in this book. If you are new to version control, or if you are migrating to Subversion from a different VCS, then chapters one, two and three are a must-read. If you are a sysadmin, then the chapters on Repository Administration, Server Configuration and the Complete Subversion Reference will prove very useful. There is also a chapter devoted to developers that are interested in expanding Subversion itself. Finding myself in the group of users interested in migrating to Subversion, I benefited most from the first three chapters. Chapter one explains the history, features, architecture and components of Subversion. Chapter two introduces readers to fundamental concepts in version control systems in general, and Subversion in particular. Chapter three is a guided tour on how to use the most frequently-used Subversion functions. I was particularly curious about Subversion's "copy-modify-merge" paradigm, which is very different from the common "lock-modify-unlock" type of system that I've been using. Fortunately, the difference in the two approaches is clearly explained in chapter two. The tutorial chapters of this book are peppered throughout with useful example scenarios on how to use Subversion in a typical team environment. Having little interest in becoming a hard-core Subversion admin, I didn’t spend a whole lot of time in Chapter seven: Advanced Topics, nor did I try to memorize all the Subversion commands listed in the Subversion Complete Reference in Chapter nine. But, these are clearly reference material that more advanced users would be interested in. Subversion aims to be "a better CVS "(Concurrent Versions System, another open-source VCS that is quite popular, especially within the open source community,) and in doing so maintains similarities to CVS. Appendix A, "Subversion for CVS users" explains where CVS and Subversion differ and will help CVS users make a smoother transition to Subversion. Appendix D, Third Party Tools, is a boon for those of us that want to access a VCS using a GUI client. This appendix lists a number of nice GUI clients and plug-ins that make the Subversion experience much more pleasant for those of us that don’t care much for doing things from the command-line prompt. In fact, my only complaint about this book is that it leaves the incorrect impression that Subversion can only be used from the command-line, and mostly on unix-type systems. I wish the book included chapters on how to use some of the GUI clients available to Subversion users. A number of other useful tools are listed here as well. Now that I've read this book, I feel much more comfortable about switching to Subversion. I think you would too.
|