As I’ve written before, I’ve been a big fan of the Pragmatic Programmer series of books for a while and when Pragmatic Version Control Using CVS came out a while back I was hoping that it was just a matter of time before a version of the book focused on Subversion would be released.
This is a good practical reference book for people just starting out with version control and Subversion. Chapter 2 is where the fun really starts, with an explanation of version control and it’s basic concepts, from the repository, through working copies, tags, branching and merging. There is also a very good explanation of locking models present in different tools and when and why you would use them. The use of scenarios to illustrate the point makes the concepts easy to understand, even for a beginner.
Chapter 3 is the ‘Getting Started’ chapter. This chapter covers installation and all the basics needed to get started including creating your first project, committing to the repository, resolving conflict — at a high level. The installation section basically covers checking your machine to see if you already have the tool installed. If it doesn’t there is a whole Appendix on installation, securing the server and administration that you are referred to.
Chapters 4-10 gets into the nitty gritty of using Subversion and covers everything from the basic commands to repository organization, vendor branches, tagging and branching. These chapters are very good for the beginner.
In the beginning of Chapter 4, the author articulates the philosophy of the book. An excerpt follows:
We think version control is one of the three essential technical practices; every team needs to be proficient in all three (the others are Pragmatic Unit Testing and Pragmatic Project Automation). Every team should be using version control — all the time, and for everything they produce. So we have to make it simple, obvious, and lightweight (because if we don’t people will eventually stop doing it).
The book I have in front of me definitely holds to the philosophy. It is a very well written book that, as all books in the Pragmatic series do, gives extremely practical advice on using version control, and making it simple enough that it looks like it is something you can sustain.
I would recommend this book for those who are just starting out and want to get something up and running quickly. One of the most important things in implementing version control, from my experience, is not learning the tool but absorbing the concepts. If you do not understand the basic concepts, the process can be quite difficult. Pragmatic Version Control Using Subversion does a really good job of explaining the base concepts in a simple to understand manner while also giving you the step by step of how to perform tasks that you will use in every day life.
If you are looking for really advanced topics such as development with the Subversion libraries, this is not the book to pick up. This is strictly for those who want to use version control for their projects and want to get it going quickly.