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' |
| doCopyRevisionProperties() | 'svnsync copy-revprops' |
| doDump() | 'svnadmin dump' |
| doListTransactions() | 'svnadmin lstxns' |
| doLoad() | 'svnadmin load' |
| doRemoveTransactions() | 'svnadmin rmtxns' |
| doVerify() | 'svnadmin verify' |
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 (see
SVNRepositoryReplicator})
fromURL - a url of a repository to copy fromtoURL - a destination repository url
doCopyRevisionProperties
public void doCopyRevisionProperties(SVNURL toURL,
long revision)
throws SVNException Copies revision properties from the source repository that the destination one is synchronized with
to the given revision of the destination repository itself.
This method is equivalent to the command 'copy-revprops' of the native Subversion
svnsync utility.
Note that the destination repository given as
toURL must be synchronized with a source
repository. Please, see
doInitialize(SVNURL,SVNURL)} how to initialize such a synchronization.
toURL - a url to the destination repository which must be synchronized
with another repositoryrevision - a particular revision of the source repository to copy revision properties
from
- 1.1, new in Subversion 1.4
doCreateRepository
public SVNURL doCreateRepository(File path,
String uuid,
boolean enableRevisionProperties,
boolean force)
throws SVNException Creates an FSFS-type repository.
This implementation uses
SVNRepositoryFactory.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 and
path already
exists, deletes that path and creates a repository in its place.
path - a repository root dir pathuuid - a repository uuidenableRevisionProperties - enables/disables changes to revision propertiesforce - forces operation to run
- a local URL (file:///) of a newly created repository
doCreateRepository
public SVNURL doCreateRepository(File path,
String uuid,
boolean enableRevisionProperties,
boolean force,
boolean pre14Compatible)
throws SVNException Creates an FSFS-type repository.
This implementation uses
SVNRepositoryFactory.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 and
path 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.
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
- a local URL (file:///) of a newly created repository
doDump
public void doDump(File repositoryRoot,
OutputStream dumpStream,
SVNRevision startRevision,
SVNRevision endRevision,
boolean isIncremental,
boolean useDeltas)
throws SVNExceptionrepositoryRoot - 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
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.
fromURL - a source repository urltoURL - a destination repository url
- 1.1, new in Subversion 1.4
doListTransactions
public void doListTransactions(File repositoryRoot)
throws SVNExceptionrepositoryRoot - a repository root directory path
doLoad
public void doLoad(File repositoryRoot,
InputStream dumpStream)
throws SVNExceptionrepositoryRoot - the root directory path of the repository where
new revisions will be committeddumpStream - stream with dumped contents of a repository
doLoad
public void doLoad(File repositoryRoot,
InputStream dumpStream,
boolean usePreCommitHook,
boolean usePostCommitHook,
SVNUUIDAction uuidAction,
String parentDir)
throws SVNExceptionrepositoryRoot - 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
doRemoveTransactions
public void doRemoveTransactions(File repositoryRoot,
String[] transactions)
throws SVNExceptionrepositoryRoot - a repository root directory pathtransactions - an array with transaction names
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.
toURL - a destination repository url
- 1.1, new in Subversion 1.4
doVerify
public void doVerify(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.
repositoryRoot - a repository root directory path
SVNException - verification failed - a repository may be corrupted
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.
handler - a replay handler