
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
18
|
Chapter 2: Basic Concepts
The output from the svn update command indicates that Subversion updated the
contents of button.c. Note that Sally didn’t need to specify which files to update;
Subversion uses the information in the .svn directory, and further information in the
repository, to decide which files need to be brought up to date.
Revisions
An svn commit operation can publish changes to any number of files and directories
as a single atomic transaction. In your working copy, you can change files’ contents;
create, delete, rename and copy files and directories; and then commit the complete
set of changes as a unit.
In the repository, each commit is treated as an atomic transaction: either all the com-
mit’s changes take place, or none of them take place. Subversion tries to retain this
atomicity in the face of program crashes, system crashes, network problems, and
other users’ actions.
Each time the repository accepts a commit, this creates a new state of the filesystem
tree, called a revision. Each revision is assigned a unique natural number, one greater
than the number of the previous revision. The initial revision of a freshly created
repository is numbered 0, and consists of nothing but an empty root directory.
Figure 2-7 illustrates a nice way to visualize the repository. ...