- - 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:
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.
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:
svn://, this also includes svn+xxx:// schemes (and svn+ssh:// in particular)
http://, this also includes secure https:// connections
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.