org.tmatesoft.svn.core.wc

## Class SVNCommitClient

- java.lang.Object
- - org.tmatesoft.svn.core.wc.SVNBasicClient
  - - org.tmatesoft.svn.core.wc.SVNCommitClient

-     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:

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

  Since:
    1.2
  Version:
    1.3
  Author:
    TMate Software Ltd.
  See Also:
    Examples

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SVNCommitClient(ISVNAuthenticationManager authManager, ISVNOptions options)` Constructs and initializes an SVNCommitClient object with the specified run-time configuration and authentication drivers.
    `SVNCommitClient(ISVNRepositoryPool repositoryPool, ISVNOptions options)` Constructs and initializes an SVNCommitClient object with the specified run-time configuration and repository pool object.
    `SVNCommitClient(SvnOperationFactory of)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `SVNCommitPacket` | `doCollectCommitItems(java.io.File[] paths, boolean keepLocks, boolean force, boolean recursive)` Deprecated. use `doCollectCommitItems(File[], boolean, boolean, SVNDepth, String[])` instead
    `SVNCommitPacket[]` | `doCollectCommitItems(java.io.File[] paths, boolean keepLocks, boolean force, boolean recursive, boolean combinePackets)` Deprecated. use `doCollectCommitItems(File[], boolean, boolean, SVNDepth, boolean, String[])` instead
    `SVNCommitPacket[]` | `doCollectCommitItems(java.io.File[] paths, boolean keepLocks, boolean force, SVNDepth depth, boolean combinePackets, java.lang.String[] changelists)` Collects commit items (containing detailed information on each Working Copy item that was changed and need to be committed to the repository) into different `SVNCommitPacket`s.
    `SVNCommitPacket` | `doCollectCommitItems(java.io.File[] paths, boolean keepLocks, boolean force, SVNDepth depth, java.lang.String[] changelists)` Collects commit items (containing detailed information on each Working Copy item that contains changes and need to be committed to the repository) into a single `SVNCommitPacket`.
    `SVNCommitInfo` | `doCommit(java.io.File[] paths, boolean keepLocks, java.lang.String commitMessage, boolean force, boolean recursive)` Deprecated. use `doCommit(File[], boolean, String, SVNProperties, String[], boolean, boolean, SVNDepth)` instead
    `SVNCommitInfo` | `doCommit(java.io.File[] paths, boolean keepLocks, java.lang.String commitMessage, SVNProperties revisionProperties, java.lang.String[] changelists, boolean keepChangelist, boolean force, SVNDepth depth)` Commits files or directories into repository.
    `SVNCommitInfo[]` | `doCommit(SVNCommitPacket[] commitPackets, boolean keepLocks, boolean keepChangelist, java.lang.String commitMessage, SVNProperties revisionProperties)` Commits files or directories into repository.
    `SVNCommitInfo[]` | `doCommit(SVNCommitPacket[] commitPackets, boolean keepLocks, java.lang.String commitMessage)` Committs local changes, made to the Working Copy items, to the repository.
    `SVNCommitInfo` | `doCommit(SVNCommitPacket commitPacket, boolean keepLocks, boolean keepChangelist, java.lang.String commitMessage, SVNProperties revisionProperties)` Commits files or directories into repository.
    `SVNCommitInfo` | `doCommit(SVNCommitPacket commitPacket, boolean keepLocks, java.lang.String commitMessage)` Committs local changes made to the Working Copy items to the repository.
    `SVNCommitInfo` | `doDelete(SVNURL[] urls, java.lang.String commitMessage)` Committs removing specified URL-paths from the repository.
    `SVNCommitInfo` | `doDelete(SVNURL[] urls, java.lang.String commitMessage, SVNProperties revisionProperties)` Deletes items from a repository.
    `SVNCommitInfo` | `doImport(java.io.File path, SVNURL dstURL, java.lang.String commitMessage, boolean recursive)` Deprecated. use `doImport(File, SVNURL, String, SVNProperties, boolean, boolean, SVNDepth)` instead
    `SVNCommitInfo` | `doImport(java.io.File path, SVNURL dstURL, java.lang.String commitMessage, boolean useGlobalIgnores, boolean recursive)` Deprecated. use `doImport(File, SVNURL, String, SVNProperties, boolean, boolean, SVNDepth)` instead
    `SVNCommitInfo` | `doImport(java.io.File path, SVNURL dstURL, java.lang.String commitMessage, SVNProperties revisionProperties, boolean useGlobalIgnores, boolean ignoreUnknownNodeTypes, SVNDepth depth)` Imports file or directory `path` into repository directory `dstURL` at HEAD revision.
    `SVNCommitInfo` | `doImport(java.io.File path, SVNURL dstURL, java.lang.String commitMessage, SVNProperties revisionProperties, boolean useGlobalIgnores, boolean ignoreUnknownNodeTypes, SVNDepth depth, boolean applyAutoProperties)` Imports file or directory `path` into repository directory `dstURL` at HEAD revision.
    `SVNCommitInfo` | `doMkDir(SVNURL[] urls, java.lang.String commitMessage)` Committs a creation of a new directory/directories in the repository.
    `SVNCommitInfo` | `doMkDir(SVNURL[] urls, java.lang.String commitMessage, SVNProperties revisionProperties, boolean makeParents)` Creates directory(ies) in a 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 previously provided.
    `ISVNCommitParameters` | `getCommitParameters()` Returns commit parameters.
    `protected void` | `initDefaults()`
    `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.
    `void` | `setFailOnMultipleRepositories(boolean fail)`

    - ### Methods inherited from class org.tmatesoft.svn.core.wc.SVNBasicClient

      `dontWC17Support, getDebugLog, getOperationsFactory, getOptions, getPathListHandler, getReposRoot, getReposRoot, isIgnoreExternals, isLeaveConflictsUnresolved, isWC17Supported, setDebugLog, setEventHandler, setEventPathPrefix, setIgnoreExternals, setLeaveConflictsUnresolved, setOptions, setPathListHandler`

    - ### 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

          public SVNCommitClient(ISVNRepositoryPool repositoryPool,
                         ISVNOptions options)

      Constructs and initializes an SVNCommitClient object with the specified run-time configuration and repository pool object.

      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 `repositoryPool` is null, then `SVNRepositoryFactory` will be used to create `repository access objects`.
      Parameters:
        `repositoryPool` - a repository pool object
        `options` - a run-time configuration options driver

    - #### SVNCommitClient

          public SVNCommitClient(SvnOperationFactory of)

  - ### Method Detail

    - #### initDefaults

          protected void initDefaults()

      Overrides:
        `initDefaults` in class `SVNBasicClient`

    - #### setCommitHander

          public void setCommitHander(ISVNCommitHandler handler)

      Deprecated. use `setCommitHandler(ISVNCommitHandler)` instead
      Parameters:
        `handler` -

    - #### 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 previously 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,
                               java.lang.String commitMessage)
                                 throws SVNException

      Committs removing specified URL-paths from the repository. This call is equivalent to `doDelete(urls, commitMessage, null)`.
      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
      See Also:
        `doDelete(SVNURL[], String, SVNProperties)`

    - #### doDelete

          public SVNCommitInfo doDelete(SVNURL[] urls,
                               java.lang.String commitMessage,
                               SVNProperties revisionProperties)
                                 throws SVNException

      Deletes items from a repository.

      If non-null, `revisionProperties` holds additional, custom revision properties (`String` names mapped to `SVNPropertyValue` values) to be set on the new revision. This table cannot contain any standard Subversion properties.

      `Commit handler` will be asked for a commit log message.

      If the caller's `event handler` is not null and if the commit succeeds, the handler will be called with `SVNEventAction.COMMIT_COMPLETED` event action.
      Parameters:
        `urls` - repository urls to delete
        `commitMessage` - commit log message
        `revisionProperties` - custom revision properties
      Returns:
        information about the new committed revision
      Throws:
        `SVNException` - in the following cases:
        exception with `SVNErrorCode.RA_ILLEGAL_URL` error code - if cannot compute common root url for `urls`
        exception with `SVNErrorCode.FS_NOT_FOUND` error code - if some of `urls` does not exist
      Since:
        1.2.0, SVN 1.5.0

    - #### doMkDir

          public SVNCommitInfo doMkDir(SVNURL[] urls,
                              java.lang.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

    - #### doMkDir

          public SVNCommitInfo doMkDir(SVNURL[] urls,
                              java.lang.String commitMessage,
                              SVNProperties revisionProperties,
                              boolean makeParents)
                                throws SVNException

      Creates directory(ies) in a repository.

      If `makeParents` is true, creates any non-existent parent directories also.

      If non-null, `revisionProperties` holds additional, custom revision properties (`String` names mapped to `SVNPropertyValue` values) to be set on the new revision. This table cannot contain any standard Subversion properties.

      `Commit handler` will be asked for a commit log message.

      If the caller's `event handler` is not null and if the commit succeeds, the handler will be called with `SVNEventAction.COMMIT_COMPLETED` event action.
      Parameters:
        `urls` - repository locations to create
        `commitMessage` - commit log message
        `revisionProperties` - custom revision properties
        `makeParents` - if true, creates all non-existent parent directories
      Returns:
        information about the new committed revision
      Throws:
        `SVNException` - in the following cases:
        exception with `SVNErrorCode.RA_ILLEGAL_URL` error code - if cannot compute common root url for `urls`
        exception with `SVNErrorCode.FS_NOT_FOUND` error code - if some of `urls` does not exist
      Since:
        1.2.0, SVN 1.5.0

    - #### doImport

          public SVNCommitInfo doImport(java.io.File path,
                               SVNURL dstURL,
                               java.lang.String commitMessage,
                               boolean recursive)
                                 throws SVNException

      Deprecated. use `doImport(File, SVNURL, String, SVNProperties, boolean, boolean, SVNDepth)` instead
      Committs an addition of a local unversioned file or directory into the repository.

      This method is identical to `doImport(path, dstURL, commitMessage, null, true, false, SVNDepth.fromRecurse(recursive))`.
      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(java.io.File path,
                               SVNURL dstURL,
                               java.lang.String commitMessage,
                               boolean useGlobalIgnores,
                               boolean recursive)
                                 throws SVNException

      Deprecated. use `doImport(File, SVNURL, String, SVNProperties, boolean, boolean, SVNDepth)` instead
      Committs an addition of a local unversioned file or directory into the repository.

      This method is identical to `doImport(path, dstURL, commitMessage, null, useGlobalIgnores, false, SVNDepth.fromRecurse(recursive))`.
      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 `ISVNOptions.getIgnorePatterns()` ) 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'

    - #### doImport

          public SVNCommitInfo doImport(java.io.File path,
                               SVNURL dstURL,
                               java.lang.String commitMessage,
                               SVNProperties revisionProperties,
                               boolean useGlobalIgnores,
                               boolean ignoreUnknownNodeTypes,
                               SVNDepth depth)
                                 throws SVNException

      Imports file or directory `path` into repository directory `dstURL` at HEAD revision. If some components of `dstURL` do not exist, then creates parent directories as necessary.

      If `path` is a directory, the contents of that directory are imported directly into the directory identified by `dstURL`. Note that the directory `path` itself is not imported -- that is, the base name of `path`is not part of the import.

      If `path` is a file, then the parent of `dstURL` is the directory receiving the import. The base name of `dstURL` is the filename in the repository. In this case if `dstURL` already exists, throws `SVNException`.

      If the caller's `event handler` is not null it will be called as the import progresses with `SVNEventAction.COMMIT_ADDED` action. If the commit succeeds, the handler will be called with `SVNEventAction.COMMIT_COMPLETED` event action.

      If non-null, `revisionProperties` holds additional, custom revision properties (`String` names mapped to `SVNPropertyValue` values) to be set on the new revision. This table cannot contain any standard Subversion properties.

      `Commit handler` will be asked for a commit log message.

      If `depth` is `SVNDepth.EMPTY`, imports just `path` and nothing below it. If `SVNDepth.FILES`, imports `path` and any file children of `path`. If `SVNDepth.IMMEDIATES`, imports `path`, any file children, and any immediate subdirectories (but nothing underneath those subdirectories). If `SVNDepth.INFINITY`, imports `path` and everything under it fully recursively.

      If `useGlobalIgnores` is false, doesn't add files or directories that match ignore patterns.

      If `ignoreUnknownNodeTypes` is false, ignores files of which the node type is unknown, such as device files and pipes.``
      Parameters:
        `path` - path to import
        `dstURL` - import destination url
        `commitMessage` - commit log message
        `revisionProperties` - custom revision properties
        `useGlobalIgnores` - whether matching against global ignore patterns should take place
        `ignoreUnknownNodeTypes` - whether to ignore files of unknown node types or not
        `depth` - tree depth to process
      Returns:
        information about the new committed revision
      Throws:
        `SVNException` - in the following cases:
        exception with `SVNErrorCode.ENTRY_NOT_FOUND` error code - if `path` does not exist
        exception with `SVNErrorCode.ENTRY_EXISTS` error code - if `dstURL` already exists and `path` is a file
        exception with `SVNErrorCode.CL_ADM_DIR_RESERVED` error code - if trying to import an item with a reserved SVN name (like `'.svn'` or `'_svn'`)
      Since:
        1.2.0, New in SVN 1.5.0

    - #### doImport

          public SVNCommitInfo doImport(java.io.File path,
                               SVNURL dstURL,
                               java.lang.String commitMessage,
                               SVNProperties revisionProperties,
                               boolean useGlobalIgnores,
                               boolean ignoreUnknownNodeTypes,
                               SVNDepth depth,
                               boolean applyAutoProperties)
                                 throws SVNException

      Imports file or directory `path` into repository directory `dstURL` at HEAD revision. If some components of `dstURL` do not exist, then creates parent directories as necessary.

      If `path` is a directory, the contents of that directory are imported directly into the directory identified by `dstURL`. Note that the directory `path` itself is not imported -- that is, the base name of `path`is not part of the import.

      If `path` is a file, then the parent of `dstURL` is the directory receiving the import. The base name of `dstURL` is the filename in the repository. In this case if `dstURL` already exists, throws `SVNException`.

      If the caller's `event handler` is not null it will be called as the import progresses with `SVNEventAction.COMMIT_ADDED` action. If the commit succeeds, the handler will be called with `SVNEventAction.COMMIT_COMPLETED` event action.

      If non-null, `revisionProperties` holds additional, custom revision properties (`String` names mapped to `SVNPropertyValue` values) to be set on the new revision. This table cannot contain any standard Subversion properties.

      `Commit handler` will be asked for a commit log message.

      If `depth` is `SVNDepth.EMPTY`, imports just `path` and nothing below it. If `SVNDepth.FILES`, imports `path` and any file children of `path`. If `SVNDepth.IMMEDIATES`, imports `path`, any file children, and any immediate subdirectories (but nothing underneath those subdirectories). If `SVNDepth.INFINITY`, imports `path` and everything under it fully recursively.

      If `useGlobalIgnores` is false, doesn't add files or directories that match ignore patterns.

      If `ignoreUnknownNodeTypes` is false, ignores files of which the node type is unknown, such as device files and pipes.``
      Parameters:
        `path` - path to import
        `dstURL` - import destination url
        `commitMessage` - commit log message
        `revisionProperties` - custom revision properties
        `useGlobalIgnores` - whether matching against global ignore patterns should take place
        `ignoreUnknownNodeTypes` - whether to ignore files of unknown node types or not
        `depth` - tree depth to process
        `applyAutoProperties` - whether to apply auto-properties
      Returns:
        information about the new committed revision
      Throws:
        `SVNException` - in the following cases:
        exception with `SVNErrorCode.ENTRY_NOT_FOUND` error code - if `path` does not exist
        exception with `SVNErrorCode.ENTRY_EXISTS` error code - if `dstURL` already exists and `path` is a file
        exception with `SVNErrorCode.CL_ADM_DIR_RESERVED` error code - if trying to import an item with a reserved SVN name (like `'.svn'` or `'_svn'`)
      Since:
        1.8

    - #### doCommit

          public SVNCommitInfo doCommit(java.io.File[] paths,
                               boolean keepLocks,
                               java.lang.String commitMessage,
                               boolean force,
                               boolean recursive)
                                 throws SVNException

      Deprecated. use `doCommit(File[], boolean, String, SVNProperties, String[], boolean, boolean, SVNDepth)` instead
      Committs local changes to the repository.

      This method is identical to `doCommit(paths, keepLocks, commitMessage, null, null, false, force, SVNDepth.fromRecurse(recursive))`.
      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`

    - #### doCommit

          public SVNCommitInfo doCommit(java.io.File[] paths,
                               boolean keepLocks,
                               java.lang.String commitMessage,
                               SVNProperties revisionProperties,
                               java.lang.String[] changelists,
                               boolean keepChangelist,
                               boolean force,
                               SVNDepth depth)
                                 throws SVNException

      Commits files or directories into repository.

      `paths` need not be canonicalized nor condensed; this method will take care of that. If `targets has zero elements, then do nothing and return immediately without error.

      If non-null, `revisionProperties` holds additional, custom revision properties (`String` names mapped to `SVNPropertyValue` values) to be set on the new revision. This table cannot contain any standard Subversion properties.

      If the caller's `event handler` is not null it will be called as the commit progresses with any of the following actions: `SVNEventAction.COMMIT_MODIFIED`, `SVNEventAction.COMMIT_ADDED`, `SVNEventAction.COMMIT_DELETED`, `SVNEventAction.COMMIT_REPLACED`. If the commit succeeds, the handler will be called with `SVNEventAction.COMMIT_COMPLETED` event action.

      If `depth` is `SVNDepth.INFINITY`, commits all changes to and below named targets. If `depth` is `SVNDepth.EMPTY`, commits only named targets (that is, only property changes on named directory targets, and property and content changes for named file targets). If `depth` is `SVNDepth.FILES`, behaves as above for named file targets, and for named directory targets, commits property changes on a named directory and all changes to files directly inside that directory. If `SVNDepth.IMMEDIATES`, behaves as for `SVNDepth.FILES`, and for subdirectories of any named directory target commits as though for `SVNDepth.EMPTY`.

      Unlocks paths in the repository, unless `keepLocks` is true.

      `changelists` is an array of `String` changelist names, used as a restrictive filter on items that are committed; that is, doesn't commit anything unless it's a member of one of those changelists. After the commit completes successfully, removes changelist associations from the targets, unless `keepChangelist` is set. If `changelists` is empty (or altogether null), no changelist filtering occurs.

      If no exception is thrown and `SVNCommitInfo.getNewRevision()` is invalid (`<0`), then the commit was a no-op; nothing needed to be committed.`
      Parameters:
        `paths` - paths to commit
        `keepLocks` - whether to unlock or not files in the repository
        `commitMessage` - commit log message
        `revisionProperties` - custom revision properties
        `changelists` - changelist names array
        `keepChangelist` - whether to remove `changelists` or not
        `force` - true to force a non-recursive commit; if `depth` is `SVNDepth.INFINITY` the `force` flag is ignored
        `depth` - tree depth to process
      Returns:
        information about the new committed revision
      Throws:
        `SVNException`
      Since:
        1.2.0, New in Subversion 1.5.0

    - #### doCommit

          public SVNCommitInfo doCommit(SVNCommitPacket commitPacket,
                               boolean keepLocks,
                               java.lang.String commitMessage)
                                 throws SVNException

      Committs local changes made to the Working Copy items to the repository.

      This method is identical to `doCommit(commitPacket, keepLocks, false, commitMessage, null)`.

      `commitPacket` contains commit items (`SVNCommitItem`) which represent local Working Copy items that were changed and are to be committed. Commit items are gathered into 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 commitPacket,
                               boolean keepLocks,
                               boolean keepChangelist,
                               java.lang.String commitMessage,
                               SVNProperties revisionProperties)
                                 throws SVNException

      Commits files or directories into repository.

      This method is identical to `doCommit(File[], boolean, String, SVNProperties, String[], boolean, boolean, SVNDepth)` except for it receives a commit packet instead of paths array. The aforementioned method collects commit items into a commit packet given working copy paths. This one accepts already collected commit items provided in `commitPacket`.

      `commitPacket` contains commit items (`SVNCommitItem`) which represent local Working Copy items that are to be committed. Commit items are gathered in a single `SVNCommitPacket` by invoking either `doCollectCommitItems(File[], boolean, boolean, SVNDepth, String[])` or `doCollectCommitItems(File[], boolean, boolean, SVNDepth, boolean, String[])`.

      For more details on parameters, please, refer to `doCommit(File[], boolean, String, SVNProperties, String[], boolean, boolean, SVNDepth)`.
      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
        `keepChangelist` - whether to remove changelists or not
        `commitMessage` - commit log message
        `revisionProperties` - custom revision properties
      Returns:
        information about the new committed revision
      Throws:
        `SVNException`
      Since:
        1.2.0, SVN 1.5.0

    - #### doCommit

          public SVNCommitInfo[] doCommit(SVNCommitPacket[] commitPackets,
                                 boolean keepLocks,
                                 java.lang.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.

      This method is identical to `doCommit(commitPackets, keepLocks, false, commitMessage, null)`.

      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`

    - #### doCommit

          public SVNCommitInfo[] doCommit(SVNCommitPacket[] commitPackets,
                                 boolean keepLocks,
                                 boolean keepChangelist,
                                 java.lang.String commitMessage,
                                 SVNProperties revisionProperties)
                                   throws SVNException

      Commits files or directories into 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(File[], boolean, boolean, SVNDepth, String[])` or `doCollectCommitItems(File[], boolean, boolean, SVNDepth, boolean, String[])`.

      This allows to commit items from separate Working Copies checked out from the same or different repositories. For each commit packet `commit handler` is invoked to produce a commit message given the one `commitMessage` passed to this method. Each commit packet is committed in a separate transaction.

      For more details on parameters, please, refer to `doCommit(File[], boolean, String, SVNProperties, String[], boolean, boolean, SVNDepth)`.
      Parameters:
        `commitPackets` - commit packets containing commit commit items per one commit
        `keepLocks` - if true and there are local items that were locked then the commit will left them locked, otherwise the items will be unlocked by the commit
        `keepChangelist` - whether to remove changelists or not
        `commitMessage` - a string to be a commit log message
        `revisionProperties` - custom revision properties
      Returns:
        information about the new committed revisions
      Throws:
        `SVNException`
      Since:
        1.2.0, SVN 1.5.0

    - #### doCollectCommitItems

          public SVNCommitPacket doCollectCommitItems(java.io.File[] paths,
                                             boolean keepLocks,
                                             boolean force,
                                             boolean recursive)
                                               throws SVNException

      Deprecated. use `doCollectCommitItems(File[], boolean, boolean, SVNDepth, String[])` instead
      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`.

      This method is equivalent to `doCollectCommitItems(paths, keepLocks, force, SVNDepth.fromRecurse(recursive), null)`.
      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`

    - #### doCollectCommitItems

          public SVNCommitPacket doCollectCommitItems(java.io.File[] paths,
                                             boolean keepLocks,
                                             boolean force,
                                             SVNDepth depth,
                                             java.lang.String[] changelists)
                                               throws SVNException

      Collects commit items (containing detailed information on each Working Copy item that contains changes and need to be committed to the repository) into a single `SVNCommitPacket`. Further this commit packet can be passed to `doCommit(SVNCommitPacket, boolean, boolean, String, SVNProperties)` .

      For more details on parameters, please, refer to `doCommit(File[], boolean, String, SVNProperties, String[], boolean, boolean, SVNDepth)`.
      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
        `depth` - tree depth to process
        `changelists` - changelist names array
      Returns:
        commit packet containing commit items
      Throws:
        `SVNException`
      Since:
        1.2.0

    - #### doCollectCommitItems

          public SVNCommitPacket[] doCollectCommitItems(java.io.File[] paths,
                                               boolean keepLocks,
                                               boolean force,
                                               boolean recursive,
                                               boolean combinePackets)
                                                 throws SVNException

      Deprecated. use `doCollectCommitItems(File[], boolean, boolean, SVNDepth, boolean, String[])` instead
      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 method is identical to `doCollectCommitItems(paths, keepLocks, force, SVNDepth.fromRecurse(recursive), combinePackets, null)`.
      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`

    - #### doCollectCommitItems

          public SVNCommitPacket[] doCollectCommitItems(java.io.File[] paths,
                                               boolean keepLocks,
                                               boolean force,
                                               SVNDepth depth,
                                               boolean combinePackets,
                                               java.lang.String[] changelists)
                                                 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 `SVNCommitPacket`s. This method may be considered as an advanced version of the `doCollectCommitItems(File[], boolean, boolean, SVNDepth, String[])` method. Its main difference from the aforementioned method is that it provides an ability to collect commit items from different working copies checked out from the same repository and combine them into a single commit packet. This is attained via setting `combinePackets` into true. However even if `combinePackets` is set, combining may only occur if (besides that the paths must be from the same repository) URLs of `paths` are formed of identical components, that is protocol name, host name, port number (if any) must match for all paths. Otherwise combining will not occur.

      Combined items will be committed in a single transaction.

      For details on other parameters, please, refer to `doCommit(File[], boolean, String, SVNProperties, String[], boolean, boolean, SVNDepth)`.
      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
        `depth` - tree depth to process
        `combinePackets` - whether combining commit packets into a single commit packet is allowed or not
        `changelists` - changelist names array
      Returns:
        array of commit packets
      Throws:
        `SVNException` - in the following cases:
        exception with `SVNErrorCode.ENTRY_MISSING_URL` error code - if working copy root of either path has no url
      Since:
        1.2.0

    - #### setFailOnMultipleRepositories

          public void setFailOnMultipleRepositories(boolean fail)