
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Layered Library Design
|
169
The hook mechanism requirement is but one of the reasons for the abstraction of a
separate repository library from the rest of the filesystem code. The libsvn_repos API
provides several other important utilities to Subversion. These include the abilities
to:
• Create, open, destroy, and perform recovery steps on a Subversion repository
and the filesystem included in that repository
• Describe the differences between two filesystem trees
• Query for the commit log messages associated with all (or some) of the revisions
in which a set of files was modified in the filesystem
• Generate a human-readable dump of the filesystem, a complete representation of
the revisions in the filesystem
• Parse that dump format, loading the dumped revisions into a different Subver-
sion repository
As Subversion continues to evolve, the repository library grows with the filesystem
library to offer increased functionality and configurable option support.
Repository Access Layer
If the Subversion Repository Layer is at the other end of the line, the Repository
Access Layer is the line itself. Charged with marshalling data between the client
libraries and the repository, this layer includes the libsvn_ra module loader library,
the RA modules themselves (which currently includes libsvn_ra_dav, ...