org.tmatesoft.svn.core.wc

Class SVNCopyClient

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:

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:

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/interfaces inherited from class org.tmatesoft.svn.core.wc.SVNBasicClient

SVNBasicClient.RepositoryReference, SVNBasicClient.SVNRepositoryLocation

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.
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.
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.
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.
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.
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, sleepForTimeStamp

Constructor Details

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 Details

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

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

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

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

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

getCommitParameters

public ISVNCommitParameters getCommitParameters()
Returns commit parameters.

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

Returns:
commit parameters

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

setCommitParameters

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

When no parameters are set default ones are used.

Parameters:
parameters - commit parameters

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