Pragmatic Version Control Using Subversion
Pragmatic Version Control Using Subversion By Mike Mason
Publisher: The Pragmatic Programmers
RRP: $34.95 (Available in PDF for $22)
Buy at Amazon
Buy Direct From Publisher
Review By Andrew Nixon
Summary
Pragmatic Version Control: Using Subversion By Mike mason is a great introduction to using Subversion, covering many aspects in great detail. This book provides a really useful resource for beginners and more advanced users alike. The book spans many topics from setting up a repository to advanced features such as merging branches, each one given a dedicated ‘recipe’ for use. The only real flaw with this book is the flow is occasionally spoilt by info boxes throughout the text, however despite this it will be a mainstay on my desk in the future!
Full Review
Ok, version control is a pain in the ass, there is no point in beating around the bush: when I code I want to get things done – I don’t have time to learn how to use Subversion, git or anything else.. I mean, really, all I need to know is svn update and I will be fine…
Imagine then, how thrilled I was when I got the copy of Pragmatic Version Control:
Using Subversion by Mike Mason, especially since I had just attempted to start using
Bazaar. Well, it never hurts to know two systems… so I started reading.
This is the first “Pragmatic Programmers” book that I’ve read so was happy to see that all the conventions fitted quite nicely with what I was used to from other publishers. The preface and introductions are really useful, it puts you into the right frame of mind, moving you away from writing code into project management. However, I did feel that the introduction didn’t exactly give me a good reason to be using subversion, sometimes it almost felt like I could have been reading a general book on version control.
The ‘roadmap’ gives the reader a really good insight into the topics covered in the book, as well as introducing the concept of ‘recipes’, which are patterns to follow to accomplish a specific task. This gives a real sense of having this book on the desk and it being able to give you a solution to a problem as you need it. Weighing in at only a couple of hundred pages it is something nice and easy to keep on your desk for when those problems arise.
The style of writing flows very nicely and the chapters are also well defined, yet have a logical progression to them, with key terms being defined in the text and highlighted in the right-hand- margin.
The “Getting Started With Subversion” chapter gives you the first real hands-on experience of using the tool by helping you setup your repository and importing your initial files. Referencing the appendix is necessary for setting up your repository properly, however, it is made quite easy. Large screenshots and well highlighted terminal commands are shown throughout, making setting subversion up properly very easy. This chapter also runs through the basic use of subversion, it really is a section for beginners, however essential nonetheless. One slightly annoying formatting issue I had was the inclusion of the info boxes – these really seemed to break up the flow of the main text, however the interruption is minimal.
The language used throughout the book is very simple and never overcomplicates the subject that is being dealt with, whilst allowing a little humour. Frequent references to two programmers (Fred & Wilma) are made to illustrate how things can happen when using subversion on a project – this approach works really well and gives a great illustration of the point at hand.
Chapter 4 and beyond start to introduce more advanced topics of subversion, such as “File Locking, Merging and Branching” of repositories, not only telling you how to do this effectively but also highlighting areas that can cause problems for developers and teams as a whole. There is some duplication of text on some of the subjects, which in such a short book seemed a little strange. These chapters all follow a similar format and go into refreshing detail whilst remaining simple and easy to use. There is no messing about with commands you won’t be using.
One of the most useful chapters is chapter 10, this gives a complete run through of starting a project using subversion and points of structure which should be avoided as well as things that can make your life easier in the future. For anyone starting a big project and are going to be using version control this chapter is worth the money alone.
In the appendix, there is also a wealth of information about the commands in subversion with which you have become familiar as well as some advanced stuff for those interested in the subversion API. As well as a “Migrating to Subversion” chapter, this is somewhat misleading because it only covers migration from CVS… no hints on taking my projects from Bazaar there! The chapter on third party clients is also very Windows centric – it would have been nice if there had been some thought to users of other OS there.
On the whole, this is a really great book covering a subject that is a little difficult, Mike
Mason wasn’t given a very easy job here when trying to make VCS interesting. However, his use of example and the humour in the book work really well. This is a book that I would recommend to people of all abilities as there is no over complication – just the bare facts. It’s going to be one of those books that sits next to the Vim manual on the desktop and rightfully so. It’s not perfect, the formatting issue can be annoying and it is a little Windows focused but overall the flaws can be ignored for a really knowledgeable and well researched book.
About Andrew
Andrew Nixon, works full time in medical physics and computer science at a hospital in Birmingham (UK). Andy is a hobbyist OS X programmer who also plays guitar in a local soul band (bookings available upon request) recording and producing music on his MacBook. Andy has only been using cocoa for about a year and been on a Mac for 18 months.
Andy does post production editing on a number of Mac Developer Network podcasts.
Andy has a blog at www.cocoageek.com










Leave your response!