Differences between revisions 7 and 8
Revision 7 as of 2008-02-20 18:59:38
Size: 4083
Editor: nat7
Comment:
Revision 8 as of 2008-02-20 19:01:29
Size: 4085
Editor: nat7
Comment:
Deletions are marked like this. Additions are marked like this.
Line 55: Line 55:
Although there is one limitation: [[SVNKit]] can work only with [http://svnbook.red-bean.com/nightly/en/svn.reposadmin.html#svn.reposadmin.basics.backends.fsfs FSFS]-type repositories over the {{{file:///}}} protocol. Although there is one limitation: [[SVNKit]] can work only with [[http://svnbook.red-bean.com/nightly/en/svn.reposadmin.html#svn.reposadmin.basics.backends.fsfs|FSFS]]-type repositories over the {{{file:///}}} protocol.

Main


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:

svnkit_architecture.png

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:

  • It does not deal with WCs at all, since WC is a higher layer than this one. This layer knows how to speak to Subversion repositories via different protocols (in fact, this layer implements such protocols).

  • Data structure is handled by this layer as an abstract data hierarchy, what gives an ability to represent more sophisticated (than just files and directories) abstractions as a tree-like hierarchy and keep such a hierarchy under version control.

Repository access protocols supported by SVNKit

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

access_protocols.png

Remote access

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

  • svn://, this also includes svn+xxx:// schemes (and svn+ssh:// in particular)

  • http://, this also includes secure https:// connections

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)