# Package org.tmatesoft.svn.core.wc

package 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. That means if you use org.tmatesoft.svn.core.wc to operate on Working Copy files, directories and their properties you won't loose a compatibility with the SVN client - as if the copy items were managed by the SVN itself. In addition the package classes and interfaces provide a developer a high flexibility in usage: all SVN client's commands are mapped to methods of SVN*Client classes which are responsible for all version control functionality (dealing either with Working Copies or URLs). This functionality is logicaly allotted to separate classes, so that, for example, all update related operations (update, switch, etc.) are handled by the same class. And * for each of these classes is the name of that functional behaviour the class is intended for - such as SVNUpdateClient or SVNCommitClient. To have even more flexibility there's a kind of a manager class - SVNClientManager - which aggregates all of these 'client' classes making developer's work easier and more comfortable. At last the high-level API is even a bit more than just an implementation of the SVN client's operations:

- the package gives a developer an ability to implement several types of operation handlers that can be passed to some of SVN*Client's methods , thus the developer can 'take part' in operation processing;
- some of SVN*Client classes have methods for which the SVN command line client has no analogues (such as the entire SVNMoveClient class).

While the package org.tmatesoft.svn.core.io represents a low-level API and therefore 'knows' nothing of the SVN native 'Working Copy' format and structure, org.tmatesoft.svn.core.wc is contrarily a kind of a Java implementation of the SVN client's commands which can be used in a standalone Java application that needs to work with Working Copies. However if a developer has no need or even don't want to have Working Copies but something else (for instance, in case of an own client side version control system specific to developer's needs) the developer should refer to org.tmatesoft.svn.core.io rather than to org.tmatesoft.svn.core.wc.

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.wc.admin
This package provides API for administrative managing Subversion repositories on a local machine.
org.tmatesoft.svn.core.wc.xml
This package gives an advantage to write annotation, status and log information in xml format to any SAX ContentHandler implementation.
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.io
This package provides a low-level API for direct interacting with a Subversion repository on the SVN protocol level.
org.tmatesoft.svn.core.replicator
This package provides classes that allow to replicate existing repositories.
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
DefaultSVNCommitHandler
This is a default implementation for ISVNCommitHandler.
DefaultSVNCommitParameters
DefaultSVNCommitParameters is the default commit parameters implementation.
DefaultSVNDiffGenerator
DefaultSVNDiffGenerator is a default implementation of ISVNDiffGenerator.
DefaultSVNRepositoryPool
The DefaultSVNRepositoryPool class is a default implementation of the ISVNRepositoryPool interface.
ISVNAddParameters
The ISVNAddParameters is an interface for a callback which is invoked when there are inconsistent EOLs found in text files which are being scheduled for addition.
ISVNAddParameters.Action
This class is simply used to define an action add operation should undertake in case of a inconsistent EOLs.
ISVNAnnotateHandler
The ISVNAnnotateHandler interface should be implemented to be further provided to SVNLogClient's doAnnotate() methods for processing annotation information per each text line.
ISVNChangelistHandler
The ISVNChangelistHandler is an interface for handlers used in changelist retrieval methods of `SVNChangelistClient`.
ISVNCommitHandler
The ISVNCommitHandler should be implemented to provide an ability to manage commit log messages for items to be committed in a common transaction.
ISVNCommitParameters
ISVNCommitParameters is the interface for parameters which set behaviour for a commit operation that touches still versioned files or dirs that are somehow missing.
ISVNCommitParameters.Action
This class is simply used to define an action a commit operation should undertake in case of a missing file/directory.
ISVNConfigEventHandler
ISVNConflictHandler
The ISVNConflictHandler interface defines a callback for resolving conflicts during the application of a tree delta to a working copy.
ISVNDiffGenerator
The ISVNDiffGenerator should be implemented by drivers generating contents difference between files in order to be used in 'diff' operations performed by SVNDiffClient.
ISVNDiffStatusHandler
The ISVNDiffStatusHandler is used to handle diff status operations supported by the SVNDiffClient.
ISVNEventHandler
The ISVNEventHandler interface should be implemented in order to be further provided to an SVN*Client object as a handler of a sequence of events generated by SVN*Client's do*() methods.
ISVNExternalsHandler
The `ISVNExternalsHandler` provides interface for user defined callbacks which are used to skip externals definitions processing in some operations.
ISVNFileFilter
`ISVNFileFilter` is used by `SVNCommitClient` during an import operation to filter out undesired paths, so that those paths do not get to a repository.
ISVNInfoHandler
The ISVNInfoHandler interface should be implemented in order to be further provided to some of SVNWCClient's doInfo() methods to process information about Working Copy as well as remote (located in a repository) items.
ISVNMerger
ISVNMerger is the merge driver interface used by `SVNKit` in merging operations.
ISVNMergerFactory
The ISVNMergerFactory interface should be implemented in order to be used as a factory of merger drivers intended for merging operations.
ISVNOptions
The ISVNOptions interface should be implemented to manage global run-time configuration options.
ISVNPathListHandler
The ISVNPathListHandler is used by SVN*Client classes as a callback in operations performed on multiple paths.
ISVNPropertyHandler
The ISVNPropertyHandler interface should be implemented to be further provided to SVNWCClient's property managing methods for handling properties.
ISVNPropertyValueProvider
The ISVNPropertyValueProvider interface should be implemented to be further provided to `SVNWCClient.doSetProperty(java.io.File, ISVNPropertyValueProvider, boolean, org.tmatesoft.svn.core.SVNDepth, ISVNPropertyHandler, java.util.Collection)` method for defining properties to change.
ISVNRepositoryPool
The ISVNRepositoryPool interface is used by SVN*Client objects to create a low-level SVN protocol driver that allows them to directly work with a repository.
ISVNStatusFileProvider
ISVNStatusHandler
The ISVNStatusHandler interface should be implemented in order to be further provided to some of SVNStatusClient's doStatus() methods to handle status information of Working Copy items.
SVNBasicClient
The SVNBasicClient is the base class of all SVN*Client classes that provides a common interface and realization.
SVNChangelistClient
The SVNChangelistClient provides API for managing changelists.
SVNClientManager
The SVNClientManager class is used to manage SVN*Client objects as well as for providing them to a user what makes the user's work easier and his code - pretty clear and flexible.
SVNCommitClient
The SVNCommitClient class provides methods to perform operations that relate to committing changes to an SVN repository.
SVNCommitItem
The SVNCommitItem represents a versioned item that is to be committed to a repository.
SVNCommitPacket
The SVNCommitPacket is a storage for SVNCommitItem objects which represent information on versioned items intended for being committed to a repository.
SVNConflictAction
The SVNConflictAction represents the type of action being attempted on an object which leads to a conflict.
SVNConflictChoice
The SVNConflictChoice is an enumeration of constants representing the way in which the conflict `callback` chooses a course of action.
SVNConflictDescription
The SVNConflictDescription represents an object that describes a conflict that has occurred in the working copy.
SVNConflictReason
The SVNConflictReason class represents an enumeration of constants describing the reason of a conflict state in a working copy produced by a merge operation.
SVNConflictResult
The SVNConflictResult represents the decision of the user's `conflict handler` regarding a conflict situation.
SVNConflictStats
SVNCopyClient
The SVNCopyClient provides methods to perform any kinds of copying and moving that SVN supports - operating on both Working Copies (WC) and URLs.
SVNCopySource
The SVNCopySource class is used to provide copy source information in copy operations.
SVNDiffClient
The SVNDiffClient class provides methods allowing to get differences between versioned items ('diff' operation) as well as ones intended for merging file contents.
SVNDiffOptions
The SVNDiffOptions class is used to contain some rules for controlling the result of comparing two files.
SVNDiffStatus
The SVNDiffStatus class is used to provide short information on path changes during diff status operations.
SVNEvent
The SVNEvent class is used to provide detailed information on an operation progress to the ISVNEventHandler (if any) registered for an SVN*Client object.
SVNEventAction
The SVNEventAction class is used to describe an action which generated an SVNEvent object.
SVNEventAdapter
SVNEventAdapter is an adapter class for `ISVNEventHandler`.
SVNInfo
The SVNInfo class is a wrapper for versioned item's (located either in a Working Copy or a repository) information details.
SVNLogClient
The SVNLogClient class is intended for such purposes as getting revisions history, browsing repository entries and annotating file contents.
SVNMergeFileSet
The SVNMergeFileSet class holds information about the file that is to be merged.
SVNMergeResult
The SVNMergeResult represents a result of a text or properties merge operation.
SVNMoveClient
The SVNMoveClient provides an extra client-side functionality over standard (i.e. compatible with the SVN command line client) move operations.
SVNOperation
SVNOperation represents the user operation that exposed a conflict.
SVNPropertyConflictDescription
SVNPropertyConflictDescription brings a property conflict description.
SVNPropertyData
SVNPropertyData is a wrapper for both versioned and unversioned properties.
SVNRevision
SVNRevision is a revision wrapper used for an abstract representation of revision information.
SVNRevisionRange
The SVNRevisionRange class represents a revision range between a start revision and an end revision.
SVNStatus
The SVNStatus class is used to provide detailed status information for a Working Copy item as a result of a status operation invoked by a doStatus() method of SVNStatusClient.
SVNStatusClient
The SVNStatusClient class provides methods for obtaining information on the status of Working Copy items.
SVNStatusType
SVNStatusType provides information about versioned items' status type.
SVNTextConflictDescription
SVNTextConflictDescription brings information about conflict on a file.
SVNTreeConflictDescription
SVNTreeConflictDescription brings information on a tree conflict.
SVNUpdateClient
This class provides methods which allow to check out, update, switch and relocate a Working Copy as well as export an unversioned directory or file from a repository.
SVNWCClient
The SVNWCClient class combines a number of version control operations mainly intended for local work with Working Copy items.
SVNWCUtil
The SVNWCUtil is a utility class providing some common methods used by Working Copy API classes for such purposes as creating default run-time configuration and authentication drivers and some others.