Class SVNReplicationEditor
java.lang.Object
org.tmatesoft.svn.core.replicator.SVNReplicationEditor
- All Implemented Interfaces:
ISVNDeltaConsumer,ISVNEditor
The SVNReplicationEditor is an editor implementation used by a
repository replicator as a bridge between an update editor for the source
repository and a commit editor of the target one. This editor is provided
to an update method of a source SVNRepository driver to properly translate
the calls of that driver to calls to a commit editor of the destination SVNRepository
driver.
- Since:
- 1.2
- Version:
- 1.3
- See Also:
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final intprivate static final intprivate static final intprivate java.util.Mapprivate ISVNEditorprivate SVNCommitInfoprivate java.util.Mapprivate java.util.Setprivate java.util.Stackprivate java.util.Mapprivate longprivate SVNRepositoryprivate SVNRepositoryprivate long -
Constructor Summary
ConstructorsConstructorDescriptionSVNReplicationEditor(SVNRepository repository, ISVNEditor commitEditor, SVNLogEntry revision) Creates a new replication editor. -
Method Summary
Modifier and TypeMethodDescriptionvoidAborts the transaction.voidabsentDir(java.lang.String path) Does nothing.voidabsentFile(java.lang.String path) Does nothing.voidaddDir(java.lang.String path, java.lang.String copyFromPath, long copyFromRevision) Adds a new directory under the specifiedpathto the target repository.voidaddFile(java.lang.String path, java.lang.String copyFromPath, long copyFromRevision) Adds a new file.voidapplyTextDelta(java.lang.String path, java.lang.String baseChecksum) Starts applying text delta.private booleanareFileContentsEqual(java.lang.String path1, long rev1, java.lang.String path2, long rev2, SVNProperties props2) voidchangeDirProperty(java.lang.String name, SVNPropertyValue value) Changes a property of the current directory.voidchangeFileProperty(java.lang.String path, java.lang.String name, SVNPropertyValue value) Changes file property.voidcloseDir()Closes the current opened dir.Commits the transaction.voidcloseFile(java.lang.String path, java.lang.String textChecksum) Closes the current opened file.private voidcompleteDeletion(java.lang.String dirPath) voiddeleteEntry(java.lang.String path, long revision) Removespathfrom the paths to be committed.Returns commit information on the revision committed to the replication destination repository.private SVNLogEntryPathgetFileCopyOrigin(java.lang.String path) private SVNRepositoryvoidopenDir(java.lang.String path, long revision) Opens a correspondingpathin the target repository.voidopenFile(java.lang.String path, long revision) Opens a file.voidopenRoot(long revision) Starts a next replication transaction.voidtargetRevision(long revision) Saves the targetrevision.java.io.OutputStreamtextDeltaChunk(java.lang.String path, SVNDiffWindow diffWindow) Applies a next chunk of delta.voidtextDeltaEnd(java.lang.String path) Handles text delta end.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
ACCEPT
private static final int ACCEPT- See Also:
-
IGNORE
private static final int IGNORE- See Also:
-
DECIDE
private static final int DECIDE- See Also:
-
myCommitEditor
-
myCopiedPaths
private java.util.Map myCopiedPaths -
myChangedPaths
private java.util.Map myChangedPaths -
myDeletedPaths
private java.util.Set myDeletedPaths -
myRepos
-
myPathsToFileBatons
private java.util.Map myPathsToFileBatons -
myDirsStack
private java.util.Stack myDirsStack -
myPreviousRevision
private long myPreviousRevision -
myTargetRevision
private long myTargetRevision -
myCommitInfo
-
mySourceRepository
-
-
Constructor Details
-
SVNReplicationEditor
public SVNReplicationEditor(SVNRepository repository, ISVNEditor commitEditor, SVNLogEntry revision) Creates a new replication editor.repositorymust be created for the root location of the source repository which is to be replicated.- Parameters:
repository- a source repositorycommitEditor- a commit editor received from the destination repository driver (which also must be point to the root location of the destination repository)revision- log information of the revision to be copied
-
-
Method Details
-
targetRevision
Saves the targetrevision.- Specified by:
targetRevisionin interfaceISVNEditor- Parameters:
revision- revision- Throws:
SVNException
-
openRoot
Starts a next replication transaction.- Specified by:
openRootin interfaceISVNEditor- Parameters:
revision- target revision- Throws:
SVNException
-
deleteEntry
Removespathfrom the paths to be committed.- Specified by:
deleteEntryin interfaceISVNEditor- Parameters:
path-revision-- Throws:
SVNException- exception withSVNErrorCode.UNKNOWNerror code - if somehow chanded paths fetched from the log of the resource repository did not reflectpathdeletion inrevision
-
absentDir
Does nothing.- Specified by:
absentDirin interfaceISVNEditor- Parameters:
path-- Throws:
SVNException
-
absentFile
Does nothing.- Specified by:
absentFilein interfaceISVNEditor- Parameters:
path-- Throws:
SVNException
-
addDir
public void addDir(java.lang.String path, java.lang.String copyFromPath, long copyFromRevision) throws SVNException Adds a new directory under the specifiedpathto the target repository.- Specified by:
addDirin interfaceISVNEditor- Parameters:
path- target directory pathcopyFromPath- not usedcopyFromRevision- not used- Throws:
SVNException- exception withSVNErrorCode.UNKNOWNerror code - if somehow chanded paths fetched from the log of the resource repository did not reflectpathaddition
-
openDir
Opens a correspondingpathin the target repository.- Specified by:
openDirin interfaceISVNEditor- Parameters:
path- target directory path relative to the root of the editrevision- target directory revision- Throws:
SVNException
-
changeDirProperty
Changes a property of the current directory.- Specified by:
changeDirPropertyin interfaceISVNEditor- Parameters:
name-value-- Throws:
SVNException- See Also:
-
closeDir
Closes the current opened dir.- Specified by:
closeDirin interfaceISVNEditor- Throws:
SVNException
-
addFile
public void addFile(java.lang.String path, java.lang.String copyFromPath, long copyFromRevision) throws SVNException Adds a new file.- Specified by:
addFilein interfaceISVNEditor- Parameters:
path-copyFromPath-copyFromRevision-- Throws:
SVNException
-
openFile
Opens a file.- Specified by:
openFilein interfaceISVNEditor- Parameters:
path-revision-- Throws:
SVNException
-
applyTextDelta
public void applyTextDelta(java.lang.String path, java.lang.String baseChecksum) throws SVNException Starts applying text delta.- Specified by:
applyTextDeltain interfaceISVNDeltaConsumer- Parameters:
path-baseChecksum-- Throws:
SVNException
-
textDeltaChunk
public java.io.OutputStream textDeltaChunk(java.lang.String path, SVNDiffWindow diffWindow) throws SVNException Applies a next chunk of delta.- Specified by:
textDeltaChunkin interfaceISVNDeltaConsumer- Parameters:
path-diffWindow-- Returns:
- dummy output stream
- Throws:
SVNException
-
textDeltaEnd
Handles text delta end.- Specified by:
textDeltaEndin interfaceISVNDeltaConsumer- Parameters:
path-- Throws:
SVNException
-
changeFileProperty
public void changeFileProperty(java.lang.String path, java.lang.String name, SVNPropertyValue value) throws SVNException Changes file property.- Specified by:
changeFilePropertyin interfaceISVNEditor- Parameters:
path-name-value-- Throws:
SVNException
-
closeFile
Closes the current opened file.- Specified by:
closeFilein interfaceISVNEditor- Parameters:
path-textChecksum-- Throws:
SVNException
-
closeEdit
Commits the transaction.- Specified by:
closeEditin interfaceISVNEditor- Returns:
- commit info
- Throws:
SVNException
-
abortEdit
Aborts the transaction.- Specified by:
abortEditin interfaceISVNEditor- Throws:
SVNException
-
getCommitInfo
Returns commit information on the revision committed to the replication destination repository.- Returns:
- commit info (revision, author, date)
-
getSourceRepository
- Throws:
SVNException
-
completeDeletion
- Throws:
SVNException
-
getFileCopyOrigin
- Throws:
SVNException
-
areFileContentsEqual
private boolean areFileContentsEqual(java.lang.String path1, long rev1, java.lang.String path2, long rev2, SVNProperties props2) throws SVNException - Throws:
SVNException
-