The Big Picture
Major Features
- Repository access over http(s), svn, svn(+ssh) and file protocols.
- Working copy operations - all are supported.
- Repository administration: create, load, dump and replay operations.
- Additionally to its own API, SVNKit implements JavaHL API.
- SVNKit is reported to work on Windows, OSX, Linux, BSD and OpenVMS.
- SVNKit does not require native binaries, it works out of the box.
- Native Subversion configuration files are used by default.
- Java Subversion command line client is part of SVNKit.
- Latest SVNKit supports Subversion 1.7.4.
Using SVNKit
High Level API
Through SVNClientManager class you get access to a number of interfaces that allow you to perform virtually everything that a Subversion user may need. This includes but not limited to checking out, updating, committing, getting history, differences and browsing repository. API is easy to use and at the same time is fine grained, thus it provides high level of customization if needed. Take a look at the sample code.
Low Level API
SVNRepository class is what you need to implement something unique either in terms of functionality or performance. This class models Subversion repository (encapsulating connection details) and you will use it to connect to and manipulate repository directly. You will use it to access repository in a fastest way or to version something other than files in the file system. Make sure to take a look at the sample code.
JavaHL API
Native Subversion includes JNI bindings which are available through JavaHL interface - SVNClientInterface. SVNKit implements it with SVNClientImpl class, so that you may just switch between JavaHL and SVNKit in the runtime. Or just replace standard JavaHL jar and its native binaries with SVNKit jar file.
Command Line Client
SVNKit based command line client is not only the tool you'll use in case there is no native client available on your system. It is also a great example of an application that uses SVNKit library. And it is not a sort of toy application - SVNKit command line client does support all the functions of the native one. Some like to use in their ant scripts, not bothering to be dependent on the native libraries.
Get More Information
- SVNKit Javadoc: Online documentation on SVNKit API.
- SVNKit Wiki: Source code examples and pieces of advice on SVNKit usage.
- SVNKit Mailing lists: Browseable mailing lists (you may also subscribe).
- SVNKit Daily Builds: Continuous integration server running SVNKit builds.
- SVNKit Issues Tracker: Place your bug reports and feature requests there.
- SVNKit Repository: Subversion repository we use to store SVNKit source code.
- Detailed information on SVNKit Support and Licensing.