The only pure Java Subversion library in the world!
Home Get Library Knowledge Base Licensing

Developer's Documentation

JavaSVN API (javadoc)  Last Updated: 2005.08.29
Generated Java Documentation for API packages which include:
org.tmatesoft.svn.core.io - contains a low-level API for direct interacting with an SVN repository.
org.tmatesoft.svn.core.wc - contains a high-level API for managing Working Copies. This package represents client classes which functionality is similar to the native SVN command line client.
org.tmatesoft.svn.core - common package that contains interfaces and classes used by the low-level API as well as the high-level one.
The following separate packages are the base set of interfaces and classes used by JavaSVN for authentication and delta (versioned context changes) managing purposes:
org.tmatesoft.svn.core.auth - contains interfaces and classes used for authentication purposes by the low-level API as well as the high-level one.
org.tmatesoft.svn.core.io.diff - contains interfaces and classes used for text/properties delta generating, manipulating, etc.
And yet one package for a javahl replacement:
org.tmatesoft.svn.core.javahl - contains an implementation of SVNClientInterface to use instead of the native SVN binding - SVNClient. This implementation uses the JavaSVN library.
Library Usage Examples
Here you can find several example programs demonstrating how to use both low- and high-level APIs. The left-hand frame contains names of example program files which are read from the repository. The right-hand frame will show you highlighted source code for example programs as you click on file links.

Developers Guide

Subversion operations: update  Last Updated: 2005.09.11
This article gives information on using ISVNReporter/ISVNEditor (from the org.tmatesoft.svn.core.io package) in update-related operations (update, checkout, etc.).
Subversion operations: commit  Last Updated: 2005.09.11
This article gives information on using ISVNEditor (from the org.tmatesoft.svn.core.io package) in commit operations.
Using JavaSVN in multithreaded environment  Last Updated: 2005.09.17
Some notes on how JavaSVN objects must be used in multithreaded programs.
Customizing network connections  Last Updated: 2005.09.11
This article describes how to customize JavaSVN http-connections, what default client-side implementations of the HTTP protocol are used and what is needed to switch between them.
Authentication  Last Updated: 2005.09.11
Read about how JavaSVN authenticates a client to a server, how to use default SVN credentials storage and settings, and how to make JavaSVN use your authentication driver.
General options  Last Updated: 2005.09.17
Like the SVN command line client JavaSVN WC managment classes use run-time configuration options. This article is an overview of how those options are managed (read, save) and how default ones are used.
Setting a custom logger (for debug logging)  Last Updated: 2005.09.11
Read brief instructions on how to customize logging JavaSVN operations.
Using JavaSVN via SVNClientInterface (JavaHL) API  Last Updated: 2005.09.11
Some notes on how you can use JavaSVN via the JavaHL API.

Users Guide

Obtaining debug logs of JavaSVN operations  Last Updated: 2005.09.11
This article gives information on how to put into usage default logging of JavaSVN operations.
Using JavaSVN with SvnAnt
Here you will find brief instructions of how to make SvnAnt use JavaSVN.
Using JavaSVN with Ant
This article describes how you can use JavaSVN in Ant tasks.
Supported system properties and configuration options  Last Updated: 2005.09.11
This article describes what configuration settings JavaSVN uses during run-time which include proxy, ssh, ssl and other ones. The article explains what is used by default and what system properties are involved if a default configuration is not available for some reason.
Replacement for JavaHL API  Last Updated: 2005.09.11
Some notes on how you can replace the JavaHL SVNClient class with the SVNClient one that uses only JavaSVN API.
JavaSVN command line client  Last Updated: 2005.09.11
Read information on the JavaSVN command line client which is an alternate for the native SVN one (supports most of the SVN's main commands).

Building Library

Standalone
Would like to use JavaSVN in a standalone application? Read this article about how to build a standalone JavaSVN library from sources.
Subclipse Extension plugin  Last Updated: 2005.08.29
Would like to have JavaSVN as an Eclipse plugin? Read this article about how to make Subclipse plugin use JavaSVN.

Additional information

Mailing Lists
If you want to ask questions about JavaSVN API, don't understand how to make things work, would like to get questions of other users and receive answers of the JavaSVN support service, wish to discuss a problem or suggest a feature, would like to get announcements of new JavaSVN versions, you should join our mailing list.
Issue tracker
Use this link to view JavaSVN issues or submit a new one. Please read documentation chapter on how to get JavaSVN logs before submitting a bug report.