Preface

Table of Contents

Audience
How This Book is Organized
Conventions Used in This Book
This Book is Free
Acknowledgments

If C gives you enough rope to hang yourself, think of Subversion as a sort of rope storage facility.” —Brian Fitzpatrick

In the world of open-source software, the Concurrent Versions System (CVS) has long been the tool of choice for version control. And rightly so. CVS itself is free software, and its wonderful “non-locking” system—which allows dozens of far-flung programmers to share their work—fits the collaborative nature of the open-source world very well. CVS and its semi-chaotic development model have become cornerstones of open-source culture.

But like many tools, CVS is starting to show its age. Subversion is a relatively new version control system designed to be the successor to CVS. The designers set out to win the hearts of CVS users in two ways: by creating an open-source system with a design (and "look and feel") similar to CVS, and by attempting to fix most of CVS's noticeable flaws. While the result isn't necessarily the next great evolution in version control design, Subversion is very powerful, very usable, and very flexible.

Audience

This book is written for computer literate folk who want to use Subversion to manage their data. While Subversion runs on a number of different operating systems, its primary user interface is command-line based. For that reason, the examples in this book assume the reader is using a Unix-like operating system, and is relatively comfortable with Unix and command-line interfaces.

Most readers are probably programmers or sysadmins who need to track changes to source code; this is the most common use for Subversion, and therefore it is the scenario underlying all of the book's examples. But keep in mind that Subversion can be used to manage changes to any sort of information: images, music, databases, documentation, and so on. To Subversion, all data is just data.

While this book is written with the assumption that the reader has never used version control, we've also tried to make it easy for former CVS users to get up to speed quickly. Special sidebars may discuss CVS from time to time, and a special appendix summarizes most of the differences between CVS and Subversion.