Class SVNAdminClient
- java.lang.Object
-
- org.tmatesoft.svn.core.wc.admin.SVNAdminBasicClient
-
- org.tmatesoft.svn.core.wc.admin.SVNAdminClient
-
- All Implemented Interfaces:
ISVNCanceller
,ISVNEventHandler
public class SVNAdminClient extends SVNAdminBasicClient
The SVNAdminClient class provides methods that brings repository-side functionality and repository synchronizing features.Repository administrative methods are analogues of the corresponding commands of the native Subversion 'svnadmin' utility, while repository synchronizing methods are the ones for the 'svnsync' utility.
Here's a list of the SVNAdminClient's methods matched against corresponing commands of the Subversion svnsync and svnadmin command-line utilities:
SVNKit Subversion doInitialize() 'svnsync initialize' doSynchronize() 'svnsync synchronize' doInfo() 'svnsync info' doCopyRevisionProperties() 'svnsync copy-revprops' doDump() 'svnadmin dump' doListTransactions() 'svnadmin lstxns' doLoad() 'svnadmin load' doRemoveTransactions() 'svnadmin rmtxns' doVerify() 'svnadmin verify' doPack() 'svnadmin pack' - Since:
- 1.2
- Version:
- 1.3
- Author:
- TMate Software Ltd.
-
-
Field Summary
-
Fields inherited from interface org.tmatesoft.svn.core.ISVNCanceller
NULL
-
Fields inherited from interface org.tmatesoft.svn.core.wc.ISVNEventHandler
UNKNOWN
-
-
Constructor Summary
Constructors Constructor Description SVNAdminClient(ISVNAuthenticationManager authManager, ISVNOptions options)
Creates a new admin client.SVNAdminClient(ISVNRepositoryPool repositoryPool, ISVNOptions options)
Creates a new admin client.SVNAdminClient(SvnOperationFactory of)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
doCompleteSynchronize(SVNURL fromURL, SVNURL toURL)
Completely synchronizes two repositories.void
doCopyRevisionProperties(SVNURL toURL, long startRevision, long endRevision)
Copies revision properties from the source repository starting atstartRevision
and up toendRevision
to corresponding revisions of the destination repository represented bytoURL
.SVNURL
doCreateRepository(java.io.File path, java.lang.String uuid, boolean enableRevisionProperties, boolean force)
Creates an FSFS-type repository.SVNURL
doCreateRepository(java.io.File path, java.lang.String uuid, boolean enableRevisionProperties, boolean force, boolean pre14Compatible)
Creates an FSFS-type repository.SVNURL
doCreateRepository(java.io.File path, java.lang.String uuid, boolean enableRevisionProperties, boolean force, boolean pre14Compatible, boolean pre15Compatible)
Creates an FSFS-type repository.SVNURL
doCreateRepository(java.io.File path, java.lang.String uuid, boolean enableRevisionProperties, boolean force, boolean pre14Compatible, boolean pre15Compatible, boolean pre16Compatible)
Creates an FSFS-type repository.SVNURL
doCreateRepository(java.io.File path, java.lang.String uuid, boolean enableRevisionProperties, boolean force, boolean pre14Compatible, boolean pre15Compatible, boolean pre16Compatible, boolean pre17Compatible, boolean with17Compatible)
void
doDump(java.io.File repositoryRoot, java.io.OutputStream dumpStream, SVNRevision startRevision, SVNRevision endRevision, boolean isIncremental, boolean useDeltas)
Dumps contents of the repository to the provided output stream in a 'dumpfile' portable format.void
doFilter(java.io.InputStream dumpStream, java.io.OutputStream resultDumpStream, boolean exclude, boolean renumberRevisions, boolean dropEmptyRevisions, boolean preserveRevisionProperties, java.util.Collection prefixes, boolean skipMissingMergeSources)
Filters out nodes with or without the givenprefixes
fromdumpStream
toresultDumpStream
.void
doHotCopy(java.io.File srcRepositoryRoot, java.io.File newRepositoryRoot)
Makes a hot copy of a repository located atsrcRepositoryRoot
to one located atnewRepositoryRoot
.SVNSyncInfo
doInfo(SVNURL toURL)
Returns information about the synchronization repository located attoURL
.void
doInitialize(SVNURL fromURL, SVNURL toURL)
Initializes synchronization between source and target repositories.void
doListLocks(java.io.File repositoryRoot)
Walks through the repository tree found underrepositoryRoot
and reports all found locks via calls to the caller'sISVNAdminEventHandler
handler implementation.void
doListTransactions(java.io.File repositoryRoot)
Lists all uncommitted transactions.void
doLoad(java.io.File repositoryRoot, java.io.InputStream dumpStream)
Reads the provided dump stream committing new revisions to a repository.void
doLoad(java.io.File repositoryRoot, java.io.InputStream dumpStream, boolean usePreCommitHook, boolean usePostCommitHook, SVNUUIDAction uuidAction, java.lang.String parentDir)
Reads the provided dump stream committing new revisions to a repository.void
doPack(java.io.File repositoryRoot)
Compacts a repository into a more efficient storage model.void
doRecover(java.io.File repositoryRoot)
Recovers the repository found underrepositoryRoot
.void
doRemoveLocks(java.io.File repositoryRoot, java.lang.String[] paths)
Removes locks from the specifiedpaths
in the repository found underrepositoryRoot
.void
doRemoveTransactions(java.io.File repositoryRoot, java.lang.String[] transactions)
Removes the specified outstanding transactions from a repository.void
doSetUUID(java.io.File repositoryRoot, java.lang.String uuid)
Resets the repository UUID with the provideduuid
for the repository located atrepositoryRoot
.void
doSynchronize(SVNURL toURL)
Synchronizes the repository at the given url.void
doUpgrade(java.io.File repositoryRoot)
Upgrades the repository located atrepositoryRoot
to the latest supported schema version.void
doVerify(java.io.File repositoryRoot)
Verifies the data stored in the repository.void
doVerify(java.io.File repositoryRoot, SVNRevision startRevision, SVNRevision endRevision)
Verifies repository contents found underrepositoryRoot
starting atstartRevision
and up toendRevision
.long
getYoungestRevision(java.io.File repositoryRoot)
Returns the HEAD revision of the repository located atrepositoryRoot
.protected void
handleNormalizedProperties(int normalizedRevPropsCount, int normalizedNodePropsCount)
protected void
handlePropertesCopied(boolean foundSyncProps, long revision)
static SVNProperties
normalizeRevisionProperties(SVNProperties revProps)
static java.lang.String
normalizeString(java.lang.String string)
void
setEventHandler(ISVNEventHandler handler)
Sets an event handler for this object.void
setReplayHandler(ISVNLogEntryHandler handler)
Sets a replication handler that will receive a log entry object per each replayed revision.-
Methods inherited from class org.tmatesoft.svn.core.wc.admin.SVNAdminBasicClient
checkCancelled, createRepository, dispatchEvent, getDebugLog, getEventDispatcher, getOptions, handleEvent, setDebugLog, setOptions
-
-
-
-
Constructor Detail
-
SVNAdminClient
public SVNAdminClient(ISVNAuthenticationManager authManager, ISVNOptions options)
Creates a new admin client.- Parameters:
authManager
- an auth manageroptions
- an options driver
-
SVNAdminClient
public SVNAdminClient(ISVNRepositoryPool repositoryPool, ISVNOptions options)
Creates a new admin client.- Parameters:
repositoryPool
- a repository pooloptions
- an options driver
-
SVNAdminClient
public SVNAdminClient(SvnOperationFactory of)
-
-
Method Detail
-
setReplayHandler
public void setReplayHandler(ISVNLogEntryHandler handler)
Sets a replication handler that will receive a log entry object per each replayed revision.Log entries dispatched to the handler may not contain changed paths and committed log message until this features are implemented in future releases.
- Parameters:
handler
- a replay handler
-
setEventHandler
public void setEventHandler(ISVNEventHandler handler)
Sets an event handler for this object.ISVNAdminEventHandler
should be provided to SVNAdminClent via this method also. But it does not mean that you can have two handler set, only one handler can be used at a time.- Overrides:
setEventHandler
in classSVNAdminBasicClient
- Parameters:
handler
- an event handler
-
doCreateRepository
public SVNURL doCreateRepository(java.io.File path, java.lang.String uuid, boolean enableRevisionProperties, boolean force) throws SVNException
Creates an FSFS-type repository. This implementation usesSVNRepositoryFactory.createLocalRepository(File, String, boolean, boolean)
}.If
uuid
is null a new uuid will be generated, otherwise the specified will be used.If
enableRevisionProperties
is true, an empty pre-revprop-change hook will be placed into the repository /hooks subdir. This enables changes to revision properties of the newly created repository.If
force
is true andpath
already exists, deletes that path and creates a repository in its place.- Parameters:
path
- a repository root dir pathuuid
- a repository uuidenableRevisionProperties
- enables/disables changes to revision propertiesforce
- forces operation to run- Returns:
- a local URL (file:///) of a newly created repository
- Throws:
SVNException
- Since:
- 1.1.0
- See Also:
doCreateRepository(File, String, boolean, boolean, boolean)
-
doCreateRepository
public SVNURL doCreateRepository(java.io.File path, java.lang.String uuid, boolean enableRevisionProperties, boolean force, boolean pre14Compatible) throws SVNException
Creates an FSFS-type repository. This implementation usesSVNRepositoryFactory.createLocalRepository(File, String, boolean, boolean)
}.If
uuid
is null a new uuid will be generated, otherwise the specified will be used.If
enableRevisionProperties
is true, an empty pre-revprop-change hook will be placed into the repository /hooks subdir. This enables changes to revision properties of the newly created repository.If
force
is true andpath
already exists, deletes that path and creates a repository in its place.Set
pre14Compatible
to true if you want a new repository to be compatible with pre-1.4 servers.- Parameters:
path
- a repository root dir pathuuid
- a repository uuidenableRevisionProperties
- enables/disables changes to revision propertiesforce
- forces operation to runpre14Compatible
- true to create a repository with pre-1.4 format- Returns:
- a local URL (file:///) of a newly created repository
- Throws:
SVNException
- Since:
- 1.1.1
-
doCreateRepository
public SVNURL doCreateRepository(java.io.File path, java.lang.String uuid, boolean enableRevisionProperties, boolean force, boolean pre14Compatible, boolean pre15Compatible, boolean pre16Compatible) throws SVNException
Creates an FSFS-type repository. This implementation usesSVNRepositoryFactory.createLocalRepository(File, String, boolean, boolean)
}.If
uuid
is null a new uuid will be generated, otherwise the specified will be used.If
enableRevisionProperties
is true, an empty pre-revprop-change hook will be placed into the repository /hooks subdir. This enables changes to revision properties of the newly created repository.If
force
is true andpath
already exists, deletes that path and creates a repository in its place.Set
pre14Compatible
to true if you want a new repository to be compatible with pre-1.4 servers,pre15Compatible
- with pre-1.5 servers andpre16Compatible
- with pre-1.6 servers.There must be only one option (either
pre14Compatible
orpre15Compatible
orpre16Compatible
) set to true at a time.- Parameters:
path
- a repository root dir pathuuid
- a repository uuidenableRevisionProperties
- enables/disables changes to revision propertiesforce
- forces operation to runpre14Compatible
- true to create a repository with pre-1.4 formatpre15Compatible
- true to create a repository with pre-1.5 formatpre16Compatible
- true to create a repository with pre-1.6 format- Returns:
- a local URL (file:///) of a newly created repository
- Throws:
SVNException
- Since:
- 1.3, SVN 1.5.0
-
doCreateRepository
public SVNURL doCreateRepository(java.io.File path, java.lang.String uuid, boolean enableRevisionProperties, boolean force, boolean pre14Compatible, boolean pre15Compatible, boolean pre16Compatible, boolean pre17Compatible, boolean with17Compatible) throws SVNException
- Throws:
SVNException
-
doCreateRepository
public SVNURL doCreateRepository(java.io.File path, java.lang.String uuid, boolean enableRevisionProperties, boolean force, boolean pre14Compatible, boolean pre15Compatible) throws SVNException
Creates an FSFS-type repository. This implementation usesSVNRepositoryFactory.createLocalRepository(File, String, boolean, boolean)
}.If
uuid
is null a new uuid will be generated, otherwise the specified will be used.If
enableRevisionProperties
is true, an empty pre-revprop-change hook will be placed into the repository /hooks subdir. This enables changes to revision properties of the newly created repository.If
force
is true andpath
already exists, deletes that path and creates a repository in its place.Set
pre14Compatible
to true if you want a new repository to be compatible with pre-1.4 servers,pre15Compatible
- with pre-1.5 servers.There must be only one option (either
pre14Compatible
orpre15Compatible
) set to true at a time.- Parameters:
path
- a repository root dir pathuuid
- a repository uuidenableRevisionProperties
- enables/disables changes to revision propertiesforce
- forces operation to runpre14Compatible
- true to create a repository with pre-1.4 formatpre15Compatible
- true to create a repository with pre-1.5 format- Returns:
- a local URL (file:///) of a newly created repository
- Throws:
SVNException
- Since:
- 1.2, SVN 1.5.0
-
doCopyRevisionProperties
public void doCopyRevisionProperties(SVNURL toURL, long startRevision, long endRevision) throws SVNException
Copies revision properties from the source repository starting atstartRevision
and up toendRevision
to corresponding revisions of the destination repository represented bytoURL
.This method is equivalent to the command 'copy-revprops' of the native Subversion svnsync utility. Note that the destination repository given as
If the caller hastoURL
must be synchronized with a source repository. Please, seedoInitialize(SVNURL, SVNURL)
} how to initialize such a synchronization.provided
an event handler, the handler will receive anSVNAdminEvent
with theSVNAdminEventAction.REVISION_PROPERTIES_COPIED
action when the properties get copied.- Parameters:
toURL
- a url to the destination repository which must be synchronized with another repositorystartRevision
- start revisionendRevision
- end revision- Throws:
SVNException
- in the following cases:-
exception with
SVNErrorCode.IO_ERROR
error code - if any of revisions betweenstartRevision
andendRevision
inclusively was not synchronized yet- Since:
- 1.2.0, new in Subversion 1.5.0
-
doInitialize
public void doInitialize(SVNURL fromURL, SVNURL toURL) throws SVNException
Initializes synchronization between source and target repositories.This method is equivalent to the command 'initialize' ('init') of the native Subversion svnsync utility. Initialization places information of a source repository to a destination one (setting special revision properties in revision 0) as well as copies all revision props from revision 0 of the source repository to revision 0 of the destination one.
- Parameters:
fromURL
- a source repository urltoURL
- a destination repository url- Throws:
SVNException
- in the following cases:-
exception with
SVNErrorCode.IO_ERROR
error code - if either the target repository's last revision is different from0
, or noSVNRevisionProperty.FROM_URL
property value found in the target repository exception withSVNErrorCode.RA_PARTIAL_REPLAY_NOT_SUPPORTED
error code - if the source repository does not support partial replay- Since:
- 1.1, new in Subversion 1.4
-
doInfo
public SVNSyncInfo doInfo(SVNURL toURL) throws SVNException
Returns information about the synchronization repository located attoURL
.- Parameters:
toURL
- destination repository url- Returns:
- synchronization information
- Throws:
SVNException
- Since:
- 1.3, SVN 1.6
-
doPack
public void doPack(java.io.File repositoryRoot) throws SVNException
Compacts a repository into a more efficient storage model. Compacting does not occur if there are no full shards. Also compacting does not work on pre-1.6 repositories.- Parameters:
repositoryRoot
- root of the repository to pack- Throws:
SVNException
- Since:
- 1.3, SVN 1.6
-
doCompleteSynchronize
public void doCompleteSynchronize(SVNURL fromURL, SVNURL toURL) throws SVNException
Completely synchronizes two repositories.This method initializes the destination repository and then copies all revision changes (including revision properties) from the given source repository to the destination one. First it tries to use synchronization features similar to the native Subversion 'svnsync' capabilities. But if a server does not support
replay
functionality, SVNKit uses its own repository replication feature (seeSVNRepositoryReplicator
})- Parameters:
fromURL
- a url of a repository to copy fromtoURL
- a destination repository url- Throws:
SVNException
- Since:
- 1.1
-
doSynchronize
public void doSynchronize(SVNURL toURL) throws SVNException
Synchronizes the repository at the given url.Synchronization means copying revision changes and revision properties from the source repository (that the destination one is synchronized with) to the destination one starting at the last merged revision. This method is equivalent to the command 'synchronize' ('sync') of the native Subversion svnsync utility.
- Parameters:
toURL
- a destination repository url- Throws:
SVNException
- Since:
- 1.1, new in Subversion 1.4
-
doListLocks
public void doListLocks(java.io.File repositoryRoot) throws SVNException
Walks through the repository tree found underrepositoryRoot
and reports all found locks via calls to the caller'sISVNAdminEventHandler
handler implementation. On each locked path found this method dispatches anSVNAdminEventAction.LOCK_LISTED
event
to the caller's handler providing thelock information
.- Parameters:
repositoryRoot
- repository root location- Throws:
SVNException
- Since:
- 1.2.0, SVN 1.5.0
-
doRemoveLocks
public void doRemoveLocks(java.io.File repositoryRoot, java.lang.String[] paths) throws SVNException
Removes locks from the specifiedpaths
in the repository found underrepositoryRoot
. If any path of thepaths
is not locked, then anevent
with theSVNAdminEventAction.NOT_LOCKED
action is dispatched to the caller'sISVNAdminEventHandler
handler. If, on the contrary, a path is locked, it is unlocked and an event with theSVNAdminEventAction.UNLOCKED
action is dispatched to the caller's handler providing thelock information
. If some error occurs while unlocking, an event with theSVNAdminEventAction.UNLOCK_FAILED
action is dispatched to the caller's handler providing theerror description
.- Parameters:
repositoryRoot
- repository root locationpaths
- paths to unlock- Throws:
SVNException
- Since:
- 1.2.0, SVN 1.5.0
-
doListTransactions
public void doListTransactions(java.io.File repositoryRoot) throws SVNException
Lists all uncommitted transactions. On each uncommetted transaction found this method fires anSVNAdminEvent
with action set toSVNAdminEventAction.TRANSACTION_LISTED
to the registeredISVNAdminEventHandler
(if any). To register your ISVNAdminEventHandler pass it tosetEventHandler(ISVNEventHandler)
. For this operation the following information can be retrieved out ofSVNAdminEvent
:- transaction name - use
SVNAdminEvent.getTxnName()
to get it - transaction directory - use
SVNAdminEvent.getTxnDir()
to get it
- Parameters:
repositoryRoot
- a repository root directory path- Throws:
SVNException
- Since:
- 1.1.1
- transaction name - use
-
doRemoveTransactions
public void doRemoveTransactions(java.io.File repositoryRoot, java.lang.String[] transactions) throws SVNException
Removes the specified outstanding transactions from a repository. On each transaction removed this method fires anSVNAdminEvent
with action set toSVNAdminEventAction.TRANSACTION_REMOVED
to the registeredISVNAdminEventHandler
(if any). To register your ISVNAdminEventHandler pass it tosetEventHandler(ISVNEventHandler)
. For this operation the following information can be retrieved out ofSVNAdminEvent
:- transaction name - use
SVNAdminEvent.getTxnName()
to get it - transaction directory - use
SVNAdminEvent.getTxnDir()
to get it
- Parameters:
repositoryRoot
- a repository root directory pathtransactions
- an array with transaction names- Throws:
SVNException
- Since:
- 1.1.1
- transaction name - use
-
doVerify
public void doVerify(java.io.File repositoryRoot) throws SVNException
Verifies the data stored in the repository. This method uses the dump implementation (non incremental, beginning with revision 0, ending at the latest one) passing a dummy output stream to it. This allows to check the integrity of the repository data. This is identical todoVerify(repositoryRoot, SVNRevision.create(0), SVNRevision.HEAD)
.- Parameters:
repositoryRoot
- a repository root directory path- Throws:
SVNException
- verification failed - a repository may be corrupted- Since:
- 1.1.1
-
doVerify
public void doVerify(java.io.File repositoryRoot, SVNRevision startRevision, SVNRevision endRevision) throws SVNException
Verifies repository contents found underrepositoryRoot
starting atstartRevision
and up toendRevision
. This method uses the dump implementation (non incremental) passing a dummy output stream to it. This allows to check the integrity of the repository data. IfstartRevision
isinvalid
, it defaults to0
. IfendRevision
isinvalid
, it defaults to the HEAD revision.- Parameters:
repositoryRoot
- a repository root directory pathstartRevision
- revision to start verification atendRevision
- revision to stop verification at- Throws:
SVNException
- verification failed - a repository may be corrupted- Since:
- 1.2.0, SVN 1.5.0
-
doDump
public void doDump(java.io.File repositoryRoot, java.io.OutputStream dumpStream, SVNRevision startRevision, SVNRevision endRevision, boolean isIncremental, boolean useDeltas) throws SVNException
Dumps contents of the repository to the provided output stream in a 'dumpfile' portable format.On each revision dumped this method fires an
SVNAdminEvent
with action set toSVNAdminEventAction.REVISION_DUMPED
to the registeredISVNAdminEventHandler
(if any). To register your ISVNAdminEventHandler pass it tosetEventHandler(ISVNEventHandler)
. For this operation the following information can be retrieved out ofSVNAdminEvent
:- dumped revision - use
SVNAdminEvent.getRevision()
to get it
- Parameters:
repositoryRoot
- a repository root directory pathdumpStream
- an output stream to write dumped contents tostartRevision
- the first revision to start dumping fromendRevision
- the last revision to end dumping atisIncremental
- if true then the first revision dumped will be a diff against the previous revision; otherwise the first revision is a fulltext.useDeltas
- if true deltas will be written instead of fulltexts- Throws:
SVNException
- Since:
- 1.1.1
- dumped revision - use
-
doLoad
public void doLoad(java.io.File repositoryRoot, java.io.InputStream dumpStream) throws SVNException
Reads the provided dump stream committing new revisions to a repository.On each revision loaded this method fires an
SVNAdminEvent
with action set toSVNAdminEventAction.REVISION_LOADED
to the registeredISVNAdminEventHandler
(if any). To register your ISVNAdminEventHandler pass it tosetEventHandler(ISVNEventHandler)
. For this operation the following information can be retrieved out ofSVNAdminEvent
:- original revision - use
SVNAdminEvent.getOriginalRevision()
to get it - new committed revision - use
SVNAdminEvent.getRevision()
to get it
A call to this method is equivalent to
doLoad(repositoryRoot, dumpStream, false, false, SVNUUIDAction.DEFAULT, null)
.- Parameters:
repositoryRoot
- the root directory path of the repository where new revisions will be committeddumpStream
- stream with dumped contents of a repository- Throws:
SVNException
- Since:
- 1.1.1
- See Also:
doLoad(File, InputStream, boolean, boolean, SVNUUIDAction, String)
- original revision - use
-
doLoad
public void doLoad(java.io.File repositoryRoot, java.io.InputStream dumpStream, boolean usePreCommitHook, boolean usePostCommitHook, SVNUUIDAction uuidAction, java.lang.String parentDir) throws SVNException
Reads the provided dump stream committing new revisions to a repository.On each revision loaded this method fires an
SVNAdminEvent
with action set toSVNAdminEventAction.REVISION_LOADED
to the registeredISVNAdminEventHandler
(if any). To register your ISVNAdminEventHandler pass it tosetEventHandler(ISVNEventHandler)
. For this operation the following information can be retrieved out ofSVNAdminEvent
:- original revision - use
SVNAdminEvent.getOriginalRevision()
to get it - new committed revision - use
SVNAdminEvent.getRevision()
to get it
- Parameters:
repositoryRoot
- the root directory path of the repository where new revisions will be committeddumpStream
- stream with dumped contents of a repositoryusePreCommitHook
- if true then calls a pre-commit hook before committingusePostCommitHook
- if true then calls a post-commit hook after committinguuidAction
- one of the three possible ways to treat uuidsparentDir
- if not null then loads at this directory in the repository- Throws:
SVNException
- Since:
- 1.1.1
- original revision - use
-
doRecover
public void doRecover(java.io.File repositoryRoot) throws SVNException
Recovers the repository found underrepositoryRoot
. This method can recover only FSFS type repositories and is identical to the'svnadmin recover'
command. If the caller hasprovided
an event handler, the handler will receive anSVNAdminEvent
with theSVNAdminEventAction.RECOVERY_STARTED
action before the recovery starts.- Parameters:
repositoryRoot
- repository root location- Throws:
SVNException
- Since:
- 1.2.0, SVN 1.5.0
-
doUpgrade
public void doUpgrade(java.io.File repositoryRoot) throws SVNException
Upgrades the repository located atrepositoryRoot
to the latest supported schema version. This method is identical to the'svnadmin upgrade'
command. This functionality is provided as a convenience for repository administrators who wish to make use of new Subversion functionality without having to undertake a potentially costly full repository dump and load operation. As such, the upgrade performs only the minimum amount of work needed to accomplish this while still maintaining the integrity of the repository. It does not guarantee the most optimized repository state as a dump and subsequent load would. If the caller hasprovided
an event handler, the handler will receive anSVNAdminEvent
with theSVNAdminEventAction.UPGRADE
action before the upgrade starts.- Parameters:
repositoryRoot
- repository root location- Throws:
SVNException
- Since:
- 1.2.0, SVN 1.5.0
-
doSetUUID
public void doSetUUID(java.io.File repositoryRoot, java.lang.String uuid) throws SVNException
Resets the repository UUID with the provideduuid
for the repository located atrepositoryRoot
. This method is identical to the'svnadmin setuuid'
command. If nouuid
is specified, thenSVNKit
will generate a new one and will use it to reset the original UUID.- Parameters:
repositoryRoot
- repository root locationuuid
- new UUID to set- Throws:
SVNException
- exception withSVNErrorCode.BAD_UUID
error code - if theuuid
is malformed- Since:
- 1.2.0, SVN 1.5.0
-
doHotCopy
public void doHotCopy(java.io.File srcRepositoryRoot, java.io.File newRepositoryRoot) throws SVNException
Makes a hot copy of a repository located atsrcRepositoryRoot
to one located atnewRepositoryRoot
. This method is identical to the'svnadmin hotcopy'
command.- Parameters:
srcRepositoryRoot
- repository to copy data fromnewRepositoryRoot
- repository to copy data to- Throws:
SVNException
- Since:
- 1.2.0, SVN 1.5.0
-
getYoungestRevision
public long getYoungestRevision(java.io.File repositoryRoot) throws SVNException
Returns the HEAD revision of the repository located atrepositoryRoot
. Identical to the'svnlook youngest'
svn command.- Parameters:
repositoryRoot
- repository root location- Returns:
- the last revision
- Throws:
SVNException
- Since:
- 1.2.0
-
doFilter
public void doFilter(java.io.InputStream dumpStream, java.io.OutputStream resultDumpStream, boolean exclude, boolean renumberRevisions, boolean dropEmptyRevisions, boolean preserveRevisionProperties, java.util.Collection prefixes, boolean skipMissingMergeSources) throws SVNException
Filters out nodes with or without the givenprefixes
fromdumpStream
toresultDumpStream
. This method is similar to the functionality provided by the'svndumpfilter'
utility. Ifexclude
is true then filters out nodes withprefixes
, otherwise nodes withoutprefixes
. If the caller hasprovided
an event handler, the handler will be called with different actions:SVNAdminEventAction.DUMP_FILTER_TOTAL_REVISIONS_DROPPED
- useSVNAdminEvent.getDroppedRevisionsCount()
to retrieve the total number of dropped revisions.SVNAdminEventAction.DUMP_FILTER_DROPPED_RENUMBERED_REVISION
- is sent only whenrenumberRevisions
is true and informs that an original revision (which is provided asSVNAdminEvent.getRevision()
) was dropped.SVNAdminEventAction.DUMP_FILTER_RENUMBERED_REVISION
- is sent only whenrenumberRevisions
is true and informs that the original revision (provided asSVNAdminEvent.getOriginalRevision()
) was renumbered toSVNAdminEvent.getRevision()
.SVNAdminEventAction.DUMP_FILTER_DROPPED_NODE
- says thatSVNAdminEvent.getPath()
was dropped.SVNAdminEventAction.DUMP_FILTER_TOTAL_NODES_DROPPED
- useSVNAdminEvent.getDroppedNodesCount()
to retrieve the total number of dropped nodes.SVNAdminEventAction.DUMP_FILTER_REVISION_COMMITTED
- is sent to inform that the original revisionSVNAdminEvent.getOriginalRevision()
resulted inSVNAdminEvent.getRevision()
in the output.SVNAdminEventAction.DUMP_FILTER_REVISION_SKIPPED
- is sent to inform that the original revisionSVNAdminEvent.getRevision()
is dropped (skipped).- Parameters:
dumpStream
- the input repository dump streamresultDumpStream
- the resultant (filtered) dump streamexclude
- whether to exclude or include paths with the specifiedprefixes
renumberRevisions
- if true, renumbers revisions left after filteringdropEmptyRevisions
- if true, then removes revisions emptied by filteringpreserveRevisionProperties
- if true, then does not filter revision propertiesprefixes
- prefixes of the path to filterskipMissingMergeSources
- if true, then skips missig merge sources- Throws:
SVNException
- Since:
- 1.2.0, SVN 1.5.0
-
handlePropertesCopied
protected void handlePropertesCopied(boolean foundSyncProps, long revision) throws SVNException
- Throws:
SVNException
-
handleNormalizedProperties
protected void handleNormalizedProperties(int normalizedRevPropsCount, int normalizedNodePropsCount) throws SVNException
- Throws:
SVNException
-
normalizeRevisionProperties
public static SVNProperties normalizeRevisionProperties(SVNProperties revProps) throws SVNException
- Throws:
SVNException
-
normalizeString
public static java.lang.String normalizeString(java.lang.String string) throws SVNException
- Throws:
SVNException
-
-