Preface

When the Apache Software Foundation accepted LDAPd, an open source LDAP server, as a new project in the incubator, I was "elected" to work with the Apache Infrastructure team to bring the source code over and get it into the CVS repository. Noel Bergman, the mentor for the project, suggested to the team that we use Subversion, a new version control system, instead of CVS. No one on the team, including myself, gave Subversion a very close look. We were all very excited to be a part of Apache and just wanted to get the project going. After all, Subversion had a different revision numbering system that nobody liked, we all had our systems set up for CVS, plus Subversion had not yet even released a 1.0 version. So we took a vote on the Apache Directory project to stay with CVS.

Despite our strong resistance to change, Noel stuck to his guns that Subversion was a better tool and it would be worth the relatively small effort required to learn it. After some discussion, Alex Karasulu, the project lead and creator of the server, asked me to investigate Subversion further and see what it had to offer.

So I went to the Subversion web site and downloaded the tool. In about two minutes I had a repository created and some test files loaded. Hmm... that was easy. Then it was time to test one of the big claims: that Subversion can rename and move files and directories seamlessly. After years of struggling to do this in CVS, I had to see it to believe it. Part of the migration into Apache required switching to a different directory structure, and I knew that would be a huge headache for me. This worked without a hitch. It took only one evening of playing around, and I was singing a different tune.

After another discussion with Alex, it was time for a second vote with our new recommendations. There was some reluctance on the part of the team, but we decided to go with Subversion. I was fortunate to work with Noel and other members of the Apache Infrastructure team, who helped me migrate the code. Through this process I was able to get some great experience with Subversion and see its benefits.

Over the next few months I became a bigger proponent of Subversion. As I talked to others in the development world, both open source and corporate, I didn't get the enthusiastic response I expected. It occurred to me that developers still saw version control as a necessary evil, not a beneficial tool for software development.

It was at this point that I wanted to write a comprehensive guide on Subversion. It was important to demonstrate to the development community not only how to run the commands but also how the tool can help the software development process. The staff at Manning also saw a need for this type of book, and so we started Subversion in Action.

This book is not just the online help regurgitated with a few examples thrown in. While it will serve as a technical guide to using Subversion, more importantly, it will be a guide for using it as a tool in your software development.