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.