JavaSVN Home

org.tmatesoft.svn.core.wc
Class SVNCommitClient

java.lang.Object
  extended byorg.tmatesoft.svn.core.wc.SVNBasicClient
      extended byorg.tmatesoft.svn.core.wc.SVNCommitClient
All Implemented Interfaces:
ISVNEventHandler

public class SVNCommitClient
extends SVNBasicClient

The SVNCommitClient class provides methods to perform operations that relate to committing changes to an SVN repository. These operations are similar to respective commands of the native SVN command line client and include ones which operate on working copy items as well as ones that operate only on a repository.

Here's a list of the SVNCommitClient's commit-related methods matched against corresponing commands of the SVN command line client:

JavaSVN Subversion
doCommit()'svn commit'
doImport()'svn import'
doDelete()'svn delete URL'
doMkDir()'svn mkdir URL'

Version:
1.1
Author:
TMate Software Ltd.
See Also:
Examples

Nested Class Summary
 
Nested classes inherited from class org.tmatesoft.svn.core.wc.SVNBasicClient
SVNBasicClient.RepositoryReference, SVNBasicClient.SVNRepositoryLocation
 
Field Summary
 
Fields inherited from interface org.tmatesoft.svn.core.wc.ISVNEventHandler
UNKNOWN
 
Constructor Summary
  SVNCommitClient(ISVNAuthenticationManager authManager, ISVNOptions options)
          Constructs and initializes an SVNCommitClient object with the specified run-time configuration and authentication drivers.
protected SVNCommitClient(ISVNRepositoryPool repositoryPool, ISVNOptions options)
           
 
Method Summary
 SVNCommitPacket doCollectCommitItems(File[] paths, boolean keepLocks, boolean force, boolean recursive)
          Collects commit items (containing detailed information on each Working Copy item that was changed and need to be committed to the repository) into a single SVNCommitPacket.
 SVNCommitPacket[] doCollectCommitItems(File[] paths, boolean keepLocks, boolean force, boolean recursive, boolean combinePackets)
          Collects commit items (containing detailed information on each Working Copy item that was changed and need to be committed to the repository) into different SVNCommitPackets.
 SVNCommitInfo doCommit(File[] paths, boolean keepLocks, String commitMessage, boolean force, boolean recursive)
          Committs local changes made to the Working Copy items (provided as an array of Files) to the repository.
 SVNCommitInfo[] doCommit(SVNCommitPacket[] commitPackets, boolean keepLocks, String commitMessage)
          Committs local changes, made to the Working Copy items, to the repository.
 SVNCommitInfo doCommit(SVNCommitPacket commitPacket, boolean keepLocks, String commitMessage)
          Committs local changes made to the Working Copy items to the repository.
 SVNCommitInfo doDelete(SVNURL[] urls, String commitMessage)
          Committs removing specified URL-paths from the repository.
 SVNCommitInfo doImport(File path, SVNURL dstURL, String commitMessage, boolean recursive)
          Committs an addition of a local unversioned file or directory into the repository.
 SVNCommitInfo doImport(File path, SVNURL dstURL, String commitMessage, boolean useGlobalIgnores, boolean recursive)
          Committs an addition of a local unversioned file or directory into the repository.
 SVNCommitInfo doMkDir(SVNURL[] urls, String commitMessage)
          Committs a creation of a new directory/directories in the repository.
 ISVNCommitHandler getCommitHandler()
          Returns the specified commit handler (if set) being in use or a default one (DefaultSVNCommitHandler) if no special implementations of ISVNCommitHandler were previousely provided.
 ISVNCommitParameters getCommitParameters()
          Returns commit parameters.
 void setCommitHander(ISVNCommitHandler handler)
          Deprecated. use setCommitHandler(ISVNCommitHandler) instead
 void setCommitHandler(ISVNCommitHandler handler)
          Sets an implementation of ISVNCommitHandler to the commit handler that will be used during commit operations to handle commit log messages.
 void setCommitParameters(ISVNCommitParameters parameters)
          Sets commit parameters to use.
 
Methods inherited from class org.tmatesoft.svn.core.wc.SVNBasicClient
checkCancelled, createRepository, createRepository, createRepository, createWCAccess, createWCAccess, dispatchEvent, dispatchEvent, getEventDispatcher, getLocations, getOptions, getRepositoryPool, getRevisionNumber, getURL, handleEvent, isIgnoreExternals, isLeaveConflictsUnresolved, setEventHandler, setEventPathPrefix, setIgnoreExternals, setLeaveConflictsUnresolved, sleepForTimeStamp
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SVNCommitClient

public SVNCommitClient(ISVNAuthenticationManager authManager,
                       ISVNOptions options)
Constructs and initializes an SVNCommitClient object with the specified run-time configuration and authentication drivers.

If options is null, then this SVNCommitClient will be using a default run-time configuration driver which takes client-side settings from the default SVN's run-time configuration area but is not able to change those settings (read more on ISVNOptions and SVNWCUtil).

If authManager is null, then this SVNCommitClient will be using a default authentication and network layers driver (see SVNWCUtil.createDefaultAuthenticationManager()) which uses server-side settings and auth storage from the default SVN's run-time configuration area (or system properties if that area is not found).

Parameters:
authManager - an authentication and network layers driver
options - a run-time configuration options driver

SVNCommitClient

protected SVNCommitClient(ISVNRepositoryPool repositoryPool,
                          ISVNOptions options)
Method Detail

setCommitHander

public void setCommitHander(ISVNCommitHandler handler)
Deprecated. use setCommitHandler(ISVNCommitHandler) instead


setCommitHandler

public void setCommitHandler(ISVNCommitHandler handler)
Sets an implementation of ISVNCommitHandler to the commit handler that will be used during commit operations to handle commit log messages. The handler will receive a clien's log message and items (represented as SVNCommitItem objects) that will be committed. Depending on implementor's aims the initial log message can be modified (or something else) and returned back.

If using SVNCommitClient without specifying any commit handler then a default one will be used - DefaultSVNCommitHandler.

Parameters:
handler - an implementor's handler that will be used to handle commit log messages
See Also:
getCommitHandler(), ISVNCommitHandler

getCommitHandler

public ISVNCommitHandler getCommitHandler()
Returns the specified commit handler (if set) being in use or a default one (DefaultSVNCommitHandler) if no special implementations of ISVNCommitHandler were previousely provided.

Returns:
the commit handler being in use or a default one
See Also:
setCommitHander(ISVNCommitHandler), ISVNCommitHandler, DefaultSVNCommitHandler

setCommitParameters

public void setCommitParameters(ISVNCommitParameters parameters)
Sets commit parameters to use.

When no parameters are set default ones are used.

Parameters:
parameters - commit parameters
See Also:
getCommitParameters()

getCommitParameters

public ISVNCommitParameters getCommitParameters()
Returns commit parameters.

If no user parameters were previously specified, once creates and returns default ones.

Returns:
commit parameters
See Also:
setCommitParameters(ISVNCommitParameters)

doDelete

public SVNCommitInfo doDelete(SVNURL[] urls,
                              String commitMessage)
                       throws SVNException
Committs removing specified URL-paths from the repository.

Parameters:
urls - an array containing URL-strings that represent repository locations to be removed
commitMessage - a string to be a commit log message
Returns:
information on a new revision as the result of the commit
Throws:
SVNException - if one of the following is true:
  • a URL does not exist
  • probably some of URLs refer to different repositories

doMkDir

public SVNCommitInfo doMkDir(SVNURL[] urls,
                             String commitMessage)
                      throws SVNException
Committs a creation of a new directory/directories in the repository.

Parameters:
urls - an array containing URL-strings that represent new repository locations to be created
commitMessage - a string to be a commit log message
Returns:
information on a new revision as the result of the commit
Throws:
SVNException - if some of URLs refer to different repositories

doImport

public SVNCommitInfo doImport(File path,
                              SVNURL dstURL,
                              String commitMessage,
                              boolean recursive)
                       throws SVNException
Committs an addition of a local unversioned file or directory into the repository. If the destination URL (dstURL) contains any non-existent parent directories they will be automatically created by the server.

Parameters:
path - a local unversioned file or directory to be imported into the repository
dstURL - a URL-string that represents a repository location where the path will be imported
commitMessage - a string to be a commit log message
recursive - this flag is relevant only when the path is a directory: if true then the entire directory tree will be imported including all child directories, otherwise only items located in the directory itself
Returns:
information on a new revision as the result of the commit
Throws:
SVNException - if one of the following is true:
  • dstURL is invalid
  • the path denoted by dstURL already exists
  • path contains a reserved name - '.svn'

doImport

public SVNCommitInfo doImport(File path,
                              SVNURL dstURL,
                              String commitMessage,
                              boolean useGlobalIgnores,
                              boolean recursive)
                       throws SVNException
Committs an addition of a local unversioned file or directory into the repository. If the destination URL (dstURL) contains any non-existent parent directories they will be automatically created by the server.

Parameters:
path - a local unversioned file or directory to be imported into the repository
dstURL - a URL-string that represents a repository location where the path will be imported
commitMessage - a string to be a commit log message
useGlobalIgnores - if true then those paths that match global ignore patterns controlled by a config options driver (see isIgnored()) will not be imported, otherwise global ignore patterns are not used
recursive - this flag is relevant only when the path is a directory: if true then the entire directory tree will be imported including all child directories, otherwise only items located in the directory itself
Returns:
information on a new revision as the result of the commit
Throws:
SVNException - if one of the following is true:
  • dstURL is invalid
  • the path denoted by dstURL already exists
  • path contains a reserved name - '.svn'

doCommit

public SVNCommitInfo doCommit(File[] paths,
                              boolean keepLocks,
                              String commitMessage,
                              boolean force,
                              boolean recursive)
                       throws SVNException
Committs local changes made to the Working Copy items (provided as an array of Files) to the repository.

Parameters:
paths - an array of local items which should be traversed to commit changes they have to the repository
keepLocks - if true and there are local items that were locked then the commit will left them locked, otherwise the items will be unlocked after the commit succeeds
commitMessage - a string to be a commit log message
force - true to force a non-recursive commit; if recursive is set to true the force flag is ignored
recursive - relevant only for directory items: if true then the entire directory tree will be committed including all child directories, otherwise only items located in the directory itself
Returns:
information on a new revision as the result of the commit
Throws:
SVNException
See Also:
doCommit(SVNCommitPacket, boolean, String)

doCommit

public SVNCommitInfo doCommit(SVNCommitPacket commitPacket,
                              boolean keepLocks,
                              String commitMessage)
                       throws SVNException
Committs local changes made to the Working Copy items to the repository.

commitPacket contains commit items (SVNCommitItem) which represent local Working Copy items that were changed and are to be committed. Commit items are gathered in a single SVNCommitPacket by invoking doCollectCommitItems().

Parameters:
commitPacket - a single object that contains items to be committed
keepLocks - if true and there are local items that were locked then the commit will left them locked, otherwise the items will be unlocked after the commit succeeds
commitMessage - a string to be a commit log message
Returns:
information on a new revision as the result of the commit
Throws:
SVNException
See Also:
SVNCommitItem

doCommit

public SVNCommitInfo[] doCommit(SVNCommitPacket[] commitPackets,
                                boolean keepLocks,
                                String commitMessage)
                         throws SVNException
Committs local changes, made to the Working Copy items, to the repository.

commitPackets is an array of packets that contain commit items (SVNCommitItem) which represent local Working Copy items that were changed and are to be committed. Commit items are gathered in a single SVNCommitPacket by invoking doCollectCommitItems().

This allows to commit separate trees of Working Copies "belonging" to different repositories. One packet per one repository. If repositories are different (it means more than one commit will be done), commitMessage may be replaced by a commit handler to be a specific one for each commit.

Parameters:
commitPackets - logically grouped items to be committed
keepLocks - if true and there are local items that were locked then the commit will left them locked, otherwise the items will be unlocked after the commit succeeds
commitMessage - a string to be a commit log message
Returns:
committed information
Throws:
SVNException

doCollectCommitItems

public SVNCommitPacket doCollectCommitItems(File[] paths,
                                            boolean keepLocks,
                                            boolean force,
                                            boolean recursive)
                                     throws SVNException
Collects commit items (containing detailed information on each Working Copy item that was changed and need to be committed to the repository) into a single SVNCommitPacket. Further this commit packet can be passed to doCommit().

Parameters:
paths - an array of local items which should be traversed to collect information on every changed item (one SVNCommitItem per each modified local item)
keepLocks - if true and there are local items that were locked then these items will be left locked after traversing all of them, otherwise the items will be unlocked
force - forces collecting commit items for a non-recursive commit
recursive - relevant only for directory items: if true then the entire directory tree will be traversed including all child directories, otherwise only items located in the directory itself will be processed
Returns:
an SVNCommitPacket containing all Working Copy items having local modifications and represented as SVNCommitItem objects; if no modified items were found then SVNCommitPacket.EMPTY is returned
Throws:
SVNException
See Also:
SVNCommitItem

doCollectCommitItems

public SVNCommitPacket[] doCollectCommitItems(File[] paths,
                                              boolean keepLocks,
                                              boolean force,
                                              boolean recursive,
                                              boolean combinePackets)
                                       throws SVNException
Collects commit items (containing detailed information on each Working Copy item that was changed and need to be committed to the repository) into different SVNCommitPackets. This allows to prepare commit packets for different Working Copies located "belonging" different repositories. Separate packets will be committed separately. If the repository is the same for all the paths, then all collected commit packets can be combined into a single one and committed in a single transaction.

Parameters:
paths - an array of local items which should be traversed to collect information on every changed item (one SVNCommitItem per each modified local item)
keepLocks - if true and there are local items that were locked then these items will be left locked after traversing all of them, otherwise the items will be unlocked
force - forces collecting commit items for a non-recursive commit
recursive - relevant only for directory items: if true then the entire directory tree will be traversed including all child directories, otherwise only items located in the directory itself will be processed
combinePackets - if true then collected commit packets will be joined into a single one, so that to be committed in a single transaction
Returns:
an array of commit packets
Throws:
SVNException
See Also:
SVNCommitItem

JavaSVN Home

Copyright © 2004-2006 TMate Software Ltd. All Rights Reserved.