JavaSVNTM - the only pure JavaTM Subversion client library in the World.
JavaSVNTM 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
JavaSVN supports the following repository access protocols:
-
svn://, svn+ssh://
-
http://, https://
- file:/// (Since 1.1.0 and for FSFS-type repositories only)
Since 1.0.2
Support for error codes similar to error codes of the native SVN.
Since 1.1.0
JavaSVN can create empty local FSFS-type (Subversion compatible)
repositories.
JavaSVN can replicate revisions from one repository to another
one. This allows to clone repositories. Also repository replicator
supports incremental mode: if you've copied a repository,
then created some new revisions in it and would like to have them
in your repository clone too, you do not need to copy the whole
original repository again - you simply copy those missing revisions
to the clone and it's up to date with the original one again!
svn+xxx:// URL schemes (not only svn+ssh). JavaSVN API gives a user an
ability to define tunnel providers which are responsible for matching
subprotocol names (xxx) to tunnel command lines.