Larkware banner
border

Book Review: Pragmatic Version Control Using Subversion

Pragmatic Version Control Using Subversion, 2nd Edition, $34.95
by Mike Mason
Pragmatic Bookshelf, 2006
231 pages
Examples for Windows and *nix
ISBN 0-9776166-5-7
http://www.pragmaticprogrammer.com/titles/svn/

Here's a straightforward book with two audiences. First, if you've never actually used version control and you're a bit unsure of why you should and where to start, it provides a gentle introduction to the subject, explaining why this is one of the cornerstones of serious software development. Second, if you are already familiar with version control but thinking of moving to Subversion (particularly if you're already using CVS, the system from which the Subversion designers made their escape) this is the book to get you up and running with a minimum of fuss. The focus is on teaching you how to perform the basic operations that everyone needs to know to use version control efficiently: putting files into a repository, getting them out again, resolving conflicts among multiple developers, handling branches, and so on. You likely won't learn every niggling little detail about Subversion from this book (especially given that it's a program still under active development) but you'll learn plenty enough to get the job done.

After covering the basics of version control and some of the reasons why Subversion is a good choice, Mason shows you how to install things and handle the most basic commands - checking files in and out, and merging changes. He then moves on to larger organizational issues, including tags and branches, multiple repositories, sharing code, and how to handle third-party code. If you've read the earlier Pragmatic Bookshelf title Pragmatic Version Control using CVS you'll find that this book is a port of that one. That is, it includes the same examples, rewritten with Subversion syntax instead of CVS syntax. But it's not always a direct port. The new book is substantially longer than the old one, since Subversion is more flexible, and where Subversion offers a better way to do things than CVS Mason doesn't hesitate to point it out. The second edition is updated to include new capabilities in Subversion 1.2 and 1.2, with new sections on file locking, path-based security, and programmatic access to Subversion.

You'll also find some coverage here of other topics like using the Windows GUI tool TortoiseSVN, migrating from other systems to Subversion, and setting up Apache to handle Subversion over HTTP. There's a handy listing of commands and recipes at the tail end of the book which provides a fast reference for people who prefer to work at the command line - which some people see as the most natural environment for Subversion.

Since the first edition of this book was published, my day job has switched to using Subversion, and we couldn't be happier (especially after years of struggling with Microsoft Visual SourceSafe). Despite using Subversion on a daily basis, though, I still learned things from a careful reading of the second edition. There's more here than a rehash of the help files; Mike Mason clearly knows what he's doing, and he has plenty of experience to share. So whether you're a Subversion novice or a pro looking to learn a few new tricks, there's probably something here for you.

Mike GunderloyLarkware is the editor of Larkware, the daily .NET newspaper of record.

Published July 18, 2006