Preface
xix
Most readers are probably programmers or system administrators 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 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 a version control system, we've also tried to make
it easy for users of CVS (and other systems) to make a painless leap into Subversion. Special sidebars may mention other version
control systems from time to time, and Appendix B, Subversion for CVS Users summarizes many of the differences between CVS
and Subversion.
Note also that the source code examples used throughout the book are only examples. While they will compile with the proper compiler
incantations, they are intended to illustrate a particular scenario and not necessarily to serve as examples of good programming style
or practices.
How to Read This Book
Technical books always face a certain dilemma: whether to cater to top-down or to bottom-up learners. A top-down learner prefers to
read or skim documentation, getting a large overview of how the system works; only then does she actually start using the software.
A bottom-up learner is a “learn by doing” person—someone who just wants to dive into the software and figure it out as she goes,
referring to book sections when necessary. Most books tend to be written for one type of person or the other, and this book is
undoubtedly biased toward top-down learners. (And if you're actually reading this section, you're probably already a top-down learner
yourself!) However, if you're a bottom-up person, don't despair. While the book may be laid out as a broad survey of Subversion
topics, the content of each section tends to be heavy with specific examples that you can try-by-doing. For the impatient folks who
just want to get going, you can jump right to Appendix A, Subversion Quick-Start Guide.
Regardless of your learning style, this book aims to be useful to people of widely different backgrounds—from those with no previous
experience in version control to experienced system administrators. Depending on your own background, certain chapters may be
more or less important to you. The following can be considered a “recommended reading list” for various types of readers:
Experienced system administrators
The assumption here is that you've probably used version control before and are dying to get a Subversion server up and
running ASAP. Chapter 5, Repository Administration and Chapter 6, Server Configuration will show you how to create your
first repository and make it available over the network. After that's done, Chapter 2, Basic Usage and Appendix B, Subversion
for CVS Users are the fastest routes to learning the Subversion client.
New users
Your administrator has probably set up Subversion already, and you need to learn how to use the client. If you've never used
a version control system, then Chapter 1, Fundamental Concepts is a vital introduction to the ideas behind version control.
Chapter 2, Basic Usage is a guided tour of the Subversion client.
Advanced users
Whether you're a user or administrator, eventually your project will grow larger. You're going to want to learn how to do more
advanced things with Subversion, such as how to use Subversion's property support (Chapter 3, Advanced Topics), how to use
branches and perform merges (Chapter 4, Branching and Merging), how to configure runtime options (Chapter 7, Customizing
Your Subversion Experience), and other things. These chapters aren't critical at first, but be sure to read them once you're
comfortable with the basics.
Developers
Presumably, you're already familiar with Subversion, and now want to either extend it or build new software on top of its many
APIs. Chapter 8, Embedding Subversion is just for you.
The book ends with reference material—Chapter 9, Subversion Complete Reference is a reference guide for all Subversion commands,
and the appendixes cover a number of useful topics. These are the chapters you're mostly likely to come back to after you've finished
the book.