|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.tmatesoft.svn.core.replicator.SVNRepositoryReplicator
public class SVNRepositoryReplicator
The SVNRepositoryReplicator class provides an ability to make a copy of an existing repository. The replicator does not create a repository for itself, so, both repositories, source and target, must already exist.
There's two general strategies for a replicator:[start, end]
,
then the target repository's last revision must be start - 1
.
For example, when copying from the very beginning of a source
repository, you pass start = 1
, what means that the target
repository's latest revision must be 0.
An incremental copying means copying from a source repository a revisions
range starting at the revision equal to the target repository's latest
revision + 1 (including) and up to the source repository's latest revision (also
including). This allows to fill up missing revisions from the source repository in
the target one, when you, say, once replicated the source repository and got some extra
new revisions in it since then.
On condition that a user has got read permissions on the entire source repository and
write permissions on the destination one, replicating guarantees that for each N th
revision copied from the source repository the user'll have in the N th revision of the
destination repository the same changes in both versioned and unversioned (revision
properties) data except locks as in the source repository.
With modern Subersion servers you may alternatively use SVNRepository.replay(long, long, boolean, ISVNEditor)
for repository replication purposes.
Field Summary |
---|
Fields inherited from interface org.tmatesoft.svn.core.wc.ISVNEventHandler |
---|
UNKNOWN |
Fields inherited from interface org.tmatesoft.svn.core.ISVNCanceller |
---|
NULL |
Method Summary | |
---|---|
void |
checkCancelled()
Redirects a call to the registered handler's checkCancelled()
method. |
protected void |
fireReplicatedEvent(SVNCommitInfo commitInfo)
Fires a replicating iteration finished event to the registered handler. |
protected void |
fireReplicatingEvent(SVNLogEntry revision)
Fires a replicating iteration started event to the registered handler. |
void |
handleEvent(SVNEvent event,
double progress)
Does nothing. |
static SVNRepositoryReplicator |
newInstance()
Creates a new repository replicator. |
long |
replicateRepository(SVNRepository src,
SVNRepository dst,
boolean incremental)
Replicates a repository either incrementally or totally. |
long |
replicateRepository(SVNRepository src,
SVNRepository dst,
long fromRevision,
long toRevision)
Replicates a range of repository revisions. |
void |
setReplicationHandler(ISVNReplicationHandler handler)
Registers a replication handler to this replicator. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method Detail |
---|
public static SVNRepositoryReplicator newInstance()
public long replicateRepository(SVNRepository src, SVNRepository dst, boolean incremental) throws SVNException
incremental
is true then
copies a range of revisions from the source repository starting at the
revision equal to dst.getLatestRevision() + 1
(including) and
expandig to src.getLatestRevision()
.
If incremental
is false then
the revision range to copy is [1, src.getLatestRevision()]
.
Both src
and dst
must be created for the root locations
of the repositories.
src
- a source repository to copy fromdst
- a destination repository to copy intoincremental
- controls the way of copying
SVNException
replicateRepository(SVNRepository,SVNRepository,long,long)
public long replicateRepository(SVNRepository src, SVNRepository dst, long fromRevision, long toRevision) throws SVNException
fromRevision
(including) and expands to
toRevision
. If fromRevision <= 0
then it defaults
to revision 1. If toRevision
doesn't lie in (0, src.getLatestRevision()]
,
it defaults to src.getLatestRevision()
. The latest revision of the
destination repository must be equal to fromRevision - 1
, where fromRevision
is
already a valid revision.
The replicator uses a log operation to investigate the changed paths in every
revision to be copied. So, for each revision being replicated an appropriate
event with log information for that revision is fired (fireReplicatingEvent(SVNLogEntry)
)
to the registered handler
(if any). Also during each copy
iteration the replicator tests the handler's checkCancelled()
method to check if the replication operation is cancelled. At the end of the copy operation
the replicator (fireReplicatedEvent(SVNCommitInfo)
) yet one event with commit information about the
replicated revision.
Both src
and dst
must be created for the root locations
of the repositories.
src
- a source repository to copy fromdst
- a destination repository to copy intofromRevision
- a start revisiontoRevision
- a final revision
SVNException
replicateRepository(SVNRepository,SVNRepository,boolean)
public void setReplicationHandler(ISVNReplicationHandler handler)
handler
- a replication handlerprotected void fireReplicatingEvent(SVNLogEntry revision) throws SVNException
revision
- log information about the revision to
be copied
SVNException
protected void fireReplicatedEvent(SVNCommitInfo commitInfo) throws SVNException
commitInfo
- commit info about the copied revision (includes revision
number, date, author)
SVNException
public void handleEvent(SVNEvent event, double progress) throws SVNException
handleEvent
in interface ISVNEventHandler
event
- progress
-
SVNException
public void checkCancelled() throws SVNCancelException
checkCancelled()
method.
checkCancelled
in interface ISVNCanceller
SVNCancelException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |