
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
10
|
Chapter 2: Basic Concepts
this sounds like the definition of a typical file server. And, indeed, the repository is a
kind of file server, although it’s not your usual breed. What makes the Subversion
repository special is that it remembers every change ever written to it: every change to
every file, and even changes to the directory tree itself, such as the addition, dele-
tion, and rearrangement of files and directories.
When a client reads data from the repository, it normally sees only the latest version
of the filesystem tree. But the client also has the ability to view previous states of the
filesystem. For example, a client can ask historical questions like, What did this
directory contain last Wednesday? or Who was the last person to change this file,
and what changes did they make? These are the sorts of questions that are at the
heart of any version control system: systems that are designed to record and track
changes to data over time.
Versioning Models
The core mission of a version control system is to enable collaborative editing and
sharing of data. However, different systems use different strategies to achieve this.
The Problem of File Sharing
All version control systems have to solve the same fundamental problem: how will
the system allow users to share information,