Overview | Package | Class | Tree | Deprecated | Index | Help
| JavaSVN Home
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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:
  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.0
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
`` | `SVNCopyClient(ISVNAuthenticationManager authManager, ISVNOptions options)` Constructs and initializes an SVNCopyClient object with the specified run-time configuration and authentication drivers.
`protected` | `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, 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, 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.
`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.

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

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

    protected 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`

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

  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` - if one of the following is true:
    - `srcURL` and `dstURL` are not in the same repository
    - `srcURL` was not found in `srcRevision`
    - `dstURL` already exists
    - `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.

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

  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

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

Overview | Package | Class | Tree | Deprecated | Index | Help
| JavaSVN Home
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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