Subversion Version Control
When I first heard about Subversion (SVN) and the idea of version control I immediately knew that it was one tool I had to learn. Having the ability to roll back mistakes; to keep a version history throughout the development cycle of an application, and to keep meaningful notes about changes and the reasons for those changes; giving myself a solid way to work on multiple machines (or more importantly, with multiple people) and to keep in check with myself or others regarding which files have been updated, etc. These are all reasons I was attracted to (and why I am in love … oh yes, in love) with SVN. Don’t tell my wife.
Getting Nowhere with Version Control
It took a while for me to begin using SVN simply because my brain went numb every time I looked at the Subversion book. Going back to the book now it makes a whole lot more sense, but in my SVN infancy I felt like I was reading Greek. So, I floundered along for a while, stored a few projects in SVN repositories (horribly so), and wasn’t having much of a good time. This was mostly due to the fact that I knew I was screwing it up.
Learning Version Control Quickly
For some reason when I pick up a book from The Pragmatic Programmers series it just makes sense. This was no different with “Pragmatic Version Control: Using Subversion 2nd Edition“. The book just makes sense to me. I really found out how easy version control really is. I would recommend this book without hesitation to anyone who wishes to learn SVN.
SVN Desktop Clients
The great thing about the book is that it works you through the examples from the command line. I had been using TortoiseSVN (a windows desktop client) to work with my repositories, and interestingly, I think I learned more about the desktop client by working with the command line than I would have by reading the documentation. This probably has more to do with the clear instructions and explanations of the book to be fair.
SVN Projects
I have found that what I can store in SVN repositories is pretty much limitless. To give you a brief idea, I am currently managing an open source project called Project Alumni through SVN. I am also writing a book and storing my chapters and supporting material through SVN.
SVN is a Must
In general, I feel that version control is a necessity when developing for the following reasons:
- It gives you a production wide undo button.
- Many people can work on a project at once, without the need to worry about who is working on what files. This does not mean that good communication isn’t necessary.
- A detailed record of changes are kept over the life of the application.
- You can make multiple releases of software and not worry about holding up the production process.
So, buy the book and give it a shot. I think you’ll be happy to add this tool to your professional toolkit.





