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

Developer's Documentation

SVNKit API (javadoc)
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.wc.xml - provides a set of log, status & blame handlers that output information to an org.xml.sax.ContentHandler.
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 SVNKit 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 SVNKit 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
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
This article gives information on using ISVNEditor (from the org.tmatesoft.svn.core.io package) in commit operations.
Using SVNKit in multithreaded environment
Some notes on how SVNKit objects must be used in multithreaded programs.
Customizing network connections
This article describes how to customize SVNKit http-connections, what default client-side implementations of the HTTP protocol are used and what is needed to switch between them.
Authentication (in russian)
Read about how SVNKit authenticates a client to a server, how to use default SVN credentials storage and settings, and how to make SVNKit use your authentication driver.
General options
Like the SVN command line client SVNKit 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)
Read brief instructions on how to customize logging SVNKit operations.
Using SVNKit via SVNClientInterface (JavaHL) API
Some notes on how you can use SVNKit via the JavaHL API.

Wiki articles

Wiki documentation
Series of articles describing version control with SVNKit. Includes FAQ, examples with descriptions, articles for beginning and experienced users.

Users Guide

Obtaining debug logs of SVNKit operations
This article gives information on how to put into usage default logging of SVNKit operations.
Using SVNKit with SvnAnt
Here you will find brief instructions of how to make SvnAnt use SVNKit.
Using SVNKit with Ant
This article describes how you can use SVNKit in Ant tasks.
Supported system properties and configuration options
This article describes what configuration settings SVNKit 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
Some notes on how you can replace the JavaHL SVNClient class with the SVNClient one that uses only SVNKit API.
SVNKit command line client
Read information on the SVNKit command line client which is an alternate for the native SVN one (supports most of the SVN's main commands).

Building Library

To use in a standalone application
Would like to use SVNKit in a standalone application? Read this article about how to build a standalone SVNKit library from sources.

Additional information

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


Java™ and all Java-based marks are a trademark or registered trademark of Sun Microsystems, Inc, in the United States and other countries. TMate Software and the website svnkit.com are independent of Sun Microsystems, Inc. and have no relationship, formal or informal.