SVNKit Architecture

SVNKit is a pure (100%) Java client library for working with data versioned by the Subversion version control system right within Java applications. The library structure can be represented as following:


That is there are two main layers in SVNKit:

High-level layer

The high-level API is similar to the commands of the Subversion native command line client: all operations for managing Working Copies are logically divided and combined in different SVN*Client classes. For example, all WC update operations (check out, update, switch, etc.) are performed by the single SVNUpdateClient class. Arguments which are accepted by methods of these classes are similar to arguments of the Subversion command line client. When an access to a repository is indeed required, the high-level layer uses the low-level one.

Low-level layer

This layer represents an abstract Subversion repository access protocol layer. There're two important things about this layer:

Repository access protocols supported by SVNKit

Since v.1.1.0 SVNKit supports the following repository access schemes:


Remote access

As you can see on the diagram above, SVNKit supports two kinds of accessing a Subversion repository over network:

Local access

Also since v.1.1.0 SVNKit is able to work with a Subversion repository on a local machine (via file:///). Although there is one limitation: SVNKit can work only with FSFS-type repositories over the file:/// protocol.

SVNKit_Architecture (last edited 2008-02-20 19:01:29 by nat7)