# Package org.tmatesoft.svn.core.io

package org.tmatesoft.svn.core.io

This package provides a low-level API for direct interacting with a Subversion repository on the SVN protocol level. The main class which manages all the repository access related work is SVNRepository. This class provides a developer a flexible interface which allows the developer not only to perform all basic SVN commands (such as checkout, commit, update, etc.) but to control those commands as well relying upon developer's implementations of ISVNReporter,ISVNEditor and other interfaces which are accepted by most of major methods of SVNRepository.

In the first place SVNRepository as well as the entire low-level API is intended for customizing developer's work with an SVN repository. So it has not the concept of Working Copy in its functionality.

Related Packages
Package
Description
org.tmatesoft.svn.core
This package mostly contains common classes as well as interfaces used throughout all the library.
org.tmatesoft.svn.core.io.diff
This package contains the classes necessary for such purposes as: generating delta windows upon comparing target bytes against source ones (also may be vs. empty), applying delta windows to files, serializing windows to byte buffers.
org.tmatesoft.svn.core.auth
This package contains interfaces/classes used by the library to authenticate a user to a repository server.
org.tmatesoft.svn.core.replicator
This package provides classes that allow to replicate existing repositories.
org.tmatesoft.svn.core.wc
This package provides a high-level API for managing Working Copies in a way compatible with the native SVN command line client.
org.tmatesoft.svn.core.wc2
NEW: this package contains command-style API to perform most of Subversion operations on the level of abstraction similar to that of the command line client.
Class
Description
ISVNConnectionListener
The ISVNConnectionListener is an interface for listeners which are invoked by `SVNRepository` when its connection is opened or closed.
ISVNDeltaConsumer
The ISVNDeltaConsumer interface is implemented by receivers of diff windows.
ISVNEditor
The ISVNEditor interface is used by SVNRepository to update versioned files/dirs, check out files/dirs from a repository, commit changes to a repository, take status of files/dirs, get differences between files.
ISVNFileCheckoutTarget
The ISVNFileCheckoutTarget interface is used in the `SVNRepository.checkoutFiles(long, String[], ISVNFileCheckoutTarget)` method to receive versioned file data from the repository.
ISVNFileRevisionHandler
The ISVNFileRevisionHandler interface should be implemented for handling information about file revisions - that is file path, properties, revision properties against a particular revision.
ISVNInheritedPropertiesHandler
ISVNLocationEntryHandler
This public interface should be implemented for using within `SVNRepository.getLocations(String, long, long[], ISVNLocationEntryHandler)`.
ISVNLocationSegmentHandler
The ISVNLocationSegmentHandler is an interface for location segment handlers which is used in the `SVNRepository.getLocationSegments(String, long, long, long, ISVNLocationSegmentHandler)` method.
ISVNLockHandler
The ISVNLockHandler interface is used to provide some extra processing of locked/unlocked paths.
ISVNLockTimeoutProvider
Mix-in interface to be optionally implemented by ISVNLockHandler When supported by the server, lock timeout would be requested during lock operation.
ISVNReplayHandler
The ISVNReplayHandler is used in `SVNRepository.replayRange(long, long, long, boolean, ISVNReplayHandler)` to provide and editor for replaying a revision.
ISVNReporter
The ISVNReporter interface provides methods to describe the state of local paths in order to get the differences in revisions between those local paths and what is actually in the repository.
ISVNReporterBaton
The ISVNReporterBaton interface should be implemented by callers of update, checkout, etc. operations of SVNRepository drivers in order to describe the state of local items.
ISVNSession
The ISVNSession interface provides some extra handling operations over SVNRepository objects.
ISVNTunnelProvider
The ISVNTunnelProvider is the interface for providers of tunnel command lines matching a specific `"svn+xxx"` tunnel scheme.
ISVNWorkingCopyContentMediator
ISVNWorkspaceMediator
The ISVNWorkspaceMediator interface is used for temporary data storage (mainly instructions and new text data for deltas) as well as for caching and getting some kind of wcprops.
SVNCapability
This class contains enumeration that describes the repository capabilities or, in other words, features that the repository may be capable of.
SVNFileRevision
The SVNFileRevision class represents information on what path a file is located at (in a repository) in a particular revision, contains file properties and revision properties for that revision.
SVNLocationEntry
The SVNLocationEntry represents a mapping of a path to its revision.
SVNLocationSegment
The SVNLocationSegment is a representation of a segment of an object's version history with an emphasis on the object's location in the repository as of various revisions.
SVNRepository
The abstract class SVNRepository provides an interface for protocol specific drivers used for direct working with a Subversion repository.
SVNRepositoryFactory
SVNRepositoryFactory is an abstract factory that is responsible for creating an appropriate SVNRepository driver specific for the protocol to use.