Pragmatic Version Control Using Subversion
The history of The Pragmatic Programmers series is a testament to the acceptance of developers worldwide seeking matter-of-fact honest appraisals and explanations of tools and methodologies designed to make their jobs easier and more productive. The style of these books was set in 1999 with the Pragmatic Bookshelf founders award winning The Pragmatic Programmer: From Journeyman to Master. Since then, six other titles have been published in The Pragmatic Programmers series, with another five on the way.
Pragmatic Version Control Using Subversion is the most recent release, revisiting the topic of source code version control using an open source tool. The first book of this type, released in September of 2003, focused on the immensely popular Concurrent Versioning System (CVS) tool. Recognizing the evolution of versioning systems in the open source space and especially the grating limitations of this prevalent incumbent, the disruptive up and coming replacement known as Subversion (available at http://subversion.tigris.org/) author Mike Mason revisits what the founding pragmatic programmers Dave Thomas and Andy Hunt wrote about in Pragmatic Version Control Using CVS. According to the book s editors, Mike s assessment of Subversion was so convincing that the Pragmatic Bookshelf staff replaced CVS with Subversion, making it that organization s de facto source control standard.
Like other titles in the Pragmatic series, Pragmatic Version Control Using Subversion is easy to read, quick to practice, and satisfying without being too overt about the approaches used. Most of the book is comprised of syntactic exercises in various command line parameters to pass to the svn Subversion client. The book kicks off with a brief overview of why Subversion is designed to replace CVS, the problems version control is supposed to solve, installing and configuring the client and server, and using Subversion in the clear with the standard svn client, svn+ssh for secure shell access, and http for WebDAV-centric interactions with the svnserve server.
The balance of the book demonstrates how to use the system in various scenarios, such as standard check-in/check-out, diffs and patches, reviewing change histories, dealing with trunks, tags and branches, and resolving version conflicts. Appendix A deals with specific installation, configuration, and backup recommendations on the Linux and Windows platforms. Appendix B discusses the effort and utilities required to migrate from CVS to Subversion. Appendix C introduces third-party GUI tools such as TortoiseSVN that hides all the command line parameters under a ridiculously easy-to-use Windows Explorer extension. Appendix D is a summary of commands and recipes (an index of common Subversion tasks and the page number of the book that details the correct approach to address the request). Appendix E provides a summary of URLs the author encourages the reader to visit for more information about the Subversion project.
At roughly the same size as other Pragmatic Starter Kit books, Pragmatic Version Control Using Subversion took less than an afternoon to read and less than an hour to practice some of the commands on a Subversion-installed client. It s an easy system to learn. However, for those developers engrained with CVS, the book stumbles a bit on presenting an irrefutable argument as to why developers would want to switch all future projects onto the Subversion platform. I missed seeing a side-by-side comparison of CVS versus Subversion features, and besides the occasional digs on CVS for its obtuse error messages and its problem with resolving conflicts (which I admit is a big problem with CVS that Subversion does address, though not perfectly), I didn t feel immediately compelled by the author s recommendation of this version control solution. Additionally, the nascent status of third-party tools will also hinder adoption, though perhaps over time, this will become much less of an issue. I would have preferred that the author give an overview of some of the more popular CVS clients, such as WinCVS, and posit an ETA on when such tools might spawn a Subversion counterpart.
Yet even without such insightful commentary, the book still delivers on its advertised promise. Individuals considering Subversion for their future version control needs should buy the book, if only to accelerate the acclimation process.
Title: Pragmatic Version Control Using Subversion
Author: Mike Mason
Publisher: The Pragmatic Bookshelf
Book Web Site: http://www.pragmaticprogrammer.com/titles/svn/index.html
Page Count: 210 pages