SVNKitTM - the only pure JavaTM Subversion client library in the World.
SVNKitTM is a powerful pure Java Subversion (SVN) client library. This means that users of the library, i.e. java applications
do not have to include SVN native binaries or javahl bindings to work with a Subversion repository.
The library represents two main concepts for developers who use a Subversion repository in their projects:
- Low-level API - the package org.tmatesoft.svn.core.io - a solution for those developers who doesn't need to work with the native
Subversion high-level format known as 'Working Copy' - that is when all local files are stored in a filesystem and all version controll
metadata is concentrated in .svn directories. For instance, those developers who would like to customize managing versioned files - like
storing and managing versioned data as well as all metadata within a data base -
will certainly find this package pretty suitable for their purposes.
- High-level API - the package org.tmatesoft.svn.core.wc - this is a set of classes and interfaces designed to provide developers means
for working particularly with the native Subversion client's format - 'Working Copy'. All the commands supported by the SVN command line client can be
also easily performed by using this high-level API. Obviously in those cases when an operation needs an access to a repository this high-level API
uses the low-level one.
Features
Currently SVNKit supports the following repository access protocols:
- svn://, svn+ssh://
- http://, https://
- file:/// (for FSFS-type repositories)
Low level repository access, that allows to access and manipulate repository efficiently
without creating working copies or using custom, non-file based, working copy.
Support of SVN 1.4.x Working Copy format. All Subversion operations over working copy are supported, plus
smart move operation that, for instance, allows to move already moved files.
Local repository access over 'file' protocol (for FSFS repositories).
Administrative functionality:
- Creation of local FSFS-type (Subversion compatible) repositories with the latest format version.
- Repository replication (svnsync) both with 1.4.x servers and older ones.
- load/dump, remove/list uncommitted transactions
- local repository examining features (like svnlook)
svn+xxx:// URL schemes (not only svn+ssh). SVNKit API gives a user an
ability to define tunnel providers which are responsible for matching
subprotocol names (xxx) to tunnel command lines.