SVNKit Home

## org.tmatesoft.svn.core.wc
Class SVNCopyClient

    java.lang.Object
      org.tmatesoft.svn.core.wc.SVNBasicClient
          org.tmatesoft.svn.core.wc.SVNCopyClient

All Implemented Interfaces:
  ISVNCanceller, ISVNEventHandler

public class SVNCopyClient
extends SVNBasicClient

The SVNCopyClient provides methods to perform any kinds of copying and moving that SVN supports - operating on both Working Copies (WC) and URLs.

Copy operations allow a user to copy versioned files and directories with all their previous history in several ways.

Supported copy operations are:

- Working Copy to Working Copy (WC-to-WC) copying - this operation copies the source Working Copy item to the destination one and schedules the source copy for addition with history.
- Working Copy to URL (WC-to-URL) copying - this operation commits to the repository (exactly to that repository location that is specified by URL) a copy of the Working Copy item.
- URL to Working Copy (URL-to-WC) copying - this operation will copy the source item from the repository to the Working Copy item and schedule the source copy for addition with history.
- URL to URL (URL-to-URL) copying - this is a fully repository-side operation, it commits a copy of the source item to a specified repository location (within the same repository, of course).

Besides just copying SVNCopyClient also is able to move a versioned item - that is first making a copy of the source item and then scheduling the source item for deletion when operating on a Working Copy, or right committing the deletion of the source item when operating immediately on the repository.

Supported move operations are:

- Working Copy to Working Copy (WC-to-WC) moving - this operation copies the source Working Copy item to the destination one and schedules the source item for deletion.
- URL to URL (URL-to-URL) moving - this is a fully repository-side operation, it commits a copy of the source item to a specified repository location and deletes the source item.

Overloaded doCopy() methods of SVNCopyClient are similar to `'svn copy'` and `'svn move'` commands of the SVN command line client.

Version:
  1.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`

Fields inherited from interface org.tmatesoft.svn.core.ISVNCanceller
`NULL`

Constructor Summary
`SVNCopyClient(ISVNAuthenticationManager authManager, ISVNOptions options)` Constructs and initializes an SVNCopyClient object with the specified run-time configuration and authentication drivers.
`SVNCopyClient(ISVNRepositoryPool repositoryPool, ISVNOptions options)`

Method Summary
`void` `doCopy(File srcPath, SVNRevision srcRevision, File dstPath, boolean force, boolean isMove)` Copies/moves a source Working Copy path to a destination Working Copy path.
`SVNCommitInfo` `doCopy(File srcPath, SVNRevision srcRevision, SVNURL dstURL, boolean failWhenDstExists, String commitMessage)` Copies a source Working Copy path (or its repository location URL) to a destination URL immediately committing changes to a repository.
`SVNCommitInfo` `doCopy(File srcPath, SVNRevision srcRevision, SVNURL dstURL, String commitMessage)` Copies a source Working Copy path (or its repository location URL) to a destination URL immediately committing changes to a repository.
`long` `doCopy(SVNURL srcURL, SVNRevision srcRevision, File dstPath)` Copies a source URL to a destination Working Copy path.
`SVNCommitInfo` `doCopy(SVNURL srcURL, SVNRevision srcRevision, SVNURL dstURL, boolean isMove, boolean failWhenDstExists, String commitMessage)` Copies/moves a source URL to a destination one immediately committing changes to a repository.
`SVNCommitInfo` `doCopy(SVNURL srcURL, SVNRevision srcRevision, SVNURL dstURL, boolean isMove, String commitMessage)` Copies/moves a source URL to a destination one immediately committing changes to 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 previousely provided.
`ISVNCommitParameters` `getCommitParameters()` Returns commit parameters.
`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, getDebugLog, getEventDispatcher, getLocations, getOptions, getRepositoryPool, getRevisionNumber, getURL, handleEvent, isIgnoreExternals, isLeaveConflictsUnresolved, setDebugLog, setEventHandler, setEventPathPrefix, setIgnoreExternals, setLeaveConflictsUnresolved, setOptions, sleepForTimeStamp`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SVNCopyClient

    public SVNCopyClient(ISVNAuthenticationManager authManager,
                         ISVNOptions options)

  Constructs and initializes an SVNCopyClient object with the specified run-time configuration and authentication drivers.

  If `options` is null, then this SVNCopyClient 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 SVNCopyClient 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

### SVNCopyClient

    public SVNCopyClient(ISVNRepositoryPool repositoryPool,
                         ISVNOptions options)

Method Detail

### 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 SVNCopyClient 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()`, `SVNCommitItem`

### 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:
    `setCommitHandler(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)`

### doCopy

    public SVNCommitInfo doCopy(SVNURL srcURL,
                                SVNRevision srcRevision,
                                SVNURL dstURL,
                                boolean isMove,
                                String commitMessage)
                         throws SVNException

  Copies/moves a source URL to a destination one immediately committing changes to a repository. Equivalent to `doCopy(srcURL, srcRevision, dstURL, isMove, false, commitMessage)`.

  Parameters:
    `srcURL` - a source repository location URL
    `srcRevision` - a revision of `srcURL`
    `dstURL` - a target URL where `srcURL` is to be copied/moved
    `isMove` - true to move the source to the target (only URL-to-URL), false to copy
    `commitMessage` - a commit log message
  Returns:
    information on the committed revision
  Throws:
    `SVNException`
  See Also:
    `doCopy(SVNURL, SVNRevision, SVNURL, boolean, boolean, String)`

### doCopy

    public SVNCommitInfo doCopy(SVNURL srcURL,
                                SVNRevision srcRevision,
                                SVNURL dstURL,
                                boolean isMove,
                                boolean failWhenDstExists,
                                String commitMessage)
                         throws SVNException

  Copies/moves a source URL to a destination one immediately committing changes to a repository.

  If `dstURL` and `srcURL` are the same, `failWhenDstExists` is false and `srcURL` is a directory then this directory will be copied into itself.

  If `dstURL` is a directory, `dstURL` and `srcURL` are not the same, `failWhenDstExists` is false, `dstURL` has not the last path element entry of `srcURL` then that entry will be copied into `dstURL`.

  Parameters:
    `srcURL` - a source repository location URL
    `srcRevision` - a revision of `srcURL`
    `dstURL` - a target URL where `srcURL` is to be copied/moved
    `isMove` - true to move the source to the target (only URL-to-URL), false to copy
    `failWhenDstExists` - true to force a failure if the destination exists
    `commitMessage` - a commit log message
  Returns:
    information on the committed revision
  Throws:
    `SVNException` - if one of the following is true:
    - `srcURL` and `dstURL` are not in the same repository
    - `srcURL` was not found in `srcRevision`
    - `dstURL` and `srcURL` are the same and `failWhenDstExists` is true
    - `dstURL` already exists and `failWhenDstExists` is true
    - `dstURL` already exists, `failWhenDstExists` is false, but `dstURL` already contains the top path element name of `srcURL`
    - `isMove =` true and `dstURL = srcURL`

### doCopy

    public SVNCommitInfo doCopy(File srcPath,
                                SVNRevision srcRevision,
                                SVNURL dstURL,
                                String commitMessage)
                         throws SVNException

  Copies a source Working Copy path (or its repository location URL) to a destination URL immediately committing changes to a repository.

  Equivalent to `doCopy(srcPath, srcRevision, dstURL, false, commitMessage)`.

  Parameters:
    `srcPath` - a source Working Copy path
    `srcRevision` - a revision of `srcPath`
    `dstURL` - a target URL where `srcPath` is to be copied
    `commitMessage` - a commit log message
  Returns:
    information on the committed revision
  Throws:
    `SVNException` - if one of the following is true:
    - `srcPath` is not under version control
    - `srcPath` has no URL
    - the repository location of `srcPath` was not found in `srcRevision`
    - `dstURL` already exists
  See Also:
    `doCopy(File, SVNRevision, SVNURL, boolean, String)`

### doCopy

    public SVNCommitInfo doCopy(File srcPath,
                                SVNRevision srcRevision,
                                SVNURL dstURL,
                                boolean failWhenDstExists,
                                String commitMessage)
                         throws SVNException

  Copies a source Working Copy path (or its repository location URL) to a destination URL immediately committing changes to a repository.

  If `srcRevision` is not `SVNRevision.WORKING` then the repository location URL of `srcPath` is copied to `dstURL`. Otherwise `srcPath` itself.

  `failWhenDstExists` behaves like in `doCopy(SVNURL, SVNRevision, SVNURL, boolean, boolean, String)`.

  Parameters:
    `srcPath` - a source Working Copy path
    `srcRevision` - a revision of `srcPath`
    `dstURL` - a target URL where `srcPath` is to be copied
    `failWhenDstExists` - true to force a failure if the destination exists
    `commitMessage` - a commit log message
  Returns:
    information on the committed revision
  Throws:
    `SVNException` - if one of the following is true:
    - `srcPath` is not under version control
    - `srcPath` has no URL
    - the repository location of `srcPath` was not found in `srcRevision`
    - `dstURL` already exists and `failWhenDstExists` is true

### doCopy

    public long doCopy(SVNURL srcURL,
                       SVNRevision srcRevision,
                       File dstPath)
                throws SVNException

  Copies a source URL to a destination Working Copy path.

  `dstPath` will be automatically scheduled for addition with history.

  Parameters:
    `srcURL` - a source URL
    `srcRevision` - a revision of `srcURL`
    `dstPath` - a destination WC path
  Returns:
    the revision number of a source
  Throws:
    `SVNException` - if one of the following is true:
    - `srcURL` was not found in `srcRevision`
    - `dstPath` already exists
    - `dstPath` appears in `srcURL`
    - `dstPath` and `srcURL` are from different repositories
    - `dstPath` is under version control but missing

### doCopy

    public void doCopy(File srcPath,
                       SVNRevision srcRevision,
                       File dstPath,
                       boolean force,
                       boolean isMove)
                throws SVNException

  Copies/moves a source Working Copy path to a destination Working Copy path.

  If `srcRevision` is not `SVNRevision.WORKING` and `isMove =` false, then the repository location URL of `srcPath` is copied to `dstPath`. Otherwise `srcPath` itself.

  `dstPath` will be automatically scheduled for addition with history.

  Parameters:
    `srcPath` - a source WC path
    `srcRevision` - a revision of `srcPath`
    `dstPath` - a destination WC path
    `force` - true to force the operation to run
    `isMove` - true to move the source to the target (only WC-to-WC), false to copy
  Throws:
    `SVNException` - if one of the following is true:
    - `dstPath` already exists and is in the way containing an item with the same name as the source
    - `srcPath` is not under version control
    - `srcPath` does not exist
    - `srcPath` has no URL
    - `dstPath` is a child of `srcPath`
    - `dstPath` is scheduled for deletion
    - `isMove =` true and `dstURL = srcURL`

SVNKit Home

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