Class SVNUpdateEditor17
- All Implemented Interfaces:
ISVNUpdateEditor,ISVNDeltaConsumer,ISVNEditor
- Version:
- 1.3
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classprivate static classprivate static classprivate classprivate classprivate static classprivate static class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate java.io.Fileprivate ISVNConflictHandlerprivate SVNUpdateEditor17.DirectoryBatonprivate SVNUpdateEditor17.FileBatonprivate SVNDeltaProcessorprivate java.util.Map<java.io.File,java.util.Map<java.lang.String, SVNDirEntry>> private java.lang.String[]private SVNExternalsStoreprivate java.util.Map<java.io.File,java.util.Map<java.lang.String, SVNProperties>> private booleanprivate booleanprivate booleanprivate booleanprivate booleanprivate SVNURLprivate java.lang.Stringprivate SVNDepthprivate java.util.Set<java.io.File>private java.io.Fileprivate java.io.Fileprivate java.lang.Stringprivate longprivate SVNWCContextprivate java.io.Fileprivate boolean -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivateSVNUpdateEditor17(SVNWCContext wcContext, java.io.File anchorAbspath, java.lang.String targetBasename, java.util.Map<java.io.File, java.util.Map<java.lang.String, SVNProperties>> inheritableProperties, SVNURL reposRootUrl, java.lang.String reposUuid, SVNURL switchURL, SVNExternalsStore externalsStore, boolean allowUnversionedObstructions, boolean depthIsSticky, SVNDepth depth, java.lang.String[] preservedExts, ISVNDirFetcher dirFetcher) -
Method Summary
Modifier and TypeMethodDescriptionvoidAborts the current running editor due to errors occured.voidabsentDir(java.lang.String path) Indicates that a path is present as a subdirectory in the edit source, but can not be conveyed to the edit consumer (perhaps because of authorization restrictions).private voidabsentEntry(java.lang.String path, SVNNodeKind nodeKind) voidabsentFile(java.lang.String path) Indicates that a path is present as a file in the edit source, but can not be conveyed to the edit consumer (perhaps because of authorization restrictions).accumulateLastChange(java.io.File localAbspath, SVNProperties entryProps) voidaddDir(java.lang.String path, java.lang.String copyFromPath, long copyFromRevision) Adds a directory.voidaddFile(java.lang.String path, java.lang.String copyFromPath, long copyFromRevision) Adds a file.alreadyInATreeConflict(java.io.File localAbspath) voidapplyTextDelta(java.lang.String path, java.lang.String expectedChecksum) Starts applying text delta(s) to an opened file.voidchangeDirProperty(java.lang.String name, SVNPropertyValue value) Changes the value of a property of the currently opened/added directory.voidchangeFileProperty(java.lang.String path, java.lang.String propertyName, SVNPropertyValue propertyValue) Changes the value of a property of the currently opened/added file.private SVNSkelcheckTreeConflict(java.io.File localAbspath, ISVNWCDb.SVNWCDbStatus workingStatus, boolean existsInRepos, SVNNodeKind expectedKind, SVNConflictAction action) voidcloseDir()Closes the currently opened directory fixing all changes of its properties and/or entries.Closes this editor finalizing the whole operation the editor was used for.voidcloseFile(java.lang.String path, java.lang.String expectedMd5Digest) Closes the opened file fixing all properties and/or contents changes.voidcompleteConflict(SVNSkel conflict, java.io.File localAbsPath, java.io.File oldReposRelPath, long oldRevision, java.io.File newReposRelPath, SVNNodeKind localKind, SVNNodeKind targetKind) private SVNTreeConflictDescriptioncreateTreeConflict(java.io.File localAbspath, SVNConflictReason reason, SVNConflictAction action, SVNNodeKind theirNodeKind, java.io.File theirRelpath) static ISVNUpdateEditorcreateUpdateEditor(SVNWCContext context, long targetRevision, java.io.File anchorAbspath, java.lang.String targetName, java.util.Map<java.io.File, java.util.Map<java.lang.String, SVNProperties>> inheritableProperties, boolean useCommitTimes, SVNURL switchURL, SVNDepth depth, boolean depthIsSticky, boolean allowUnversionedObstructions, boolean addsAsModifications, boolean serverPerformsFiltering, boolean cleanCheckout, ISVNDirFetcher dirFetcher, SVNExternalsStore externalsStore, java.lang.String[] preservedExtensions, ISVNConflictHandler conflictHandler) static ISVNUpdateEditorcreateUpdateEditor(SVNWCContext wcContext, java.io.File anchorAbspath, java.lang.String target, java.util.Map<java.io.File, java.util.Map<java.lang.String, SVNProperties>> inheritableProperties, SVNURL reposRoot, SVNURL switchURL, SVNExternalsStore externalsStore, boolean allowUnversionedObstructions, boolean depthIsSticky, SVNDepth depth, java.lang.String[] preservedExts, ISVNDirFetcher dirFetcher) voiddeleteEntry(java.lang.String path, long revision) Deletes an entry.private voiddoNotification(java.io.File localAbspath, SVNNodeKind kind, SVNEventAction action, SVNURL url, SVNURL previousURL) longprivate java.io.Fileprivate voidinitExcludedDirectoryEntries(ISVNDirFetcher dirFetcher) isNodeAlreadyConflicted(java.io.File localAbspath) private static booleanisNodePresent(ISVNWCDb.SVNWCDbStatus status) private SVNUpdateEditor17.DirectoryBatonmakeDirectoryBaton(java.lang.String path, SVNUpdateEditor17.DirectoryBaton parent, boolean adding) private SVNUpdateEditor17.FileBatonmakeFileBaton(SVNUpdateEditor17.DirectoryBaton parent, java.lang.String path, boolean adding) private voidprivate SVNUpdateEditor17.MergeFileInfomergeFile(SVNUpdateEditor17.FileBaton fb, SVNUpdateEditor17.MergeFileInfo mergeFileInfo, SVNProperties actualProps, SVNDate lastChangedDate) voidopenDir(java.lang.String path, long revision) Opens a directory.voidopenFile(java.lang.String path, long revision) Opens a file.voidopenRoot(long revision) Opens the root directory on which the operation was invoked.static SVNWCContext.MergeInfoperformFileMerge(SVNWCContext.MergeInfo mergeInfo, SVNWCContext context, java.io.File localAbsPath, java.io.File wriAbsPath, SvnChecksum newChecksum, SvnChecksum originalChecksum, SVNProperties actualProperties, java.lang.String[] extPatterns, long oldRevision, long targetRevision, SVNProperties propChanges) private voidrememberSkippedTree(java.io.File localAbspath) voidtargetRevision(long revision) Sets the target revision the operation is running for.java.io.OutputStreamtextDeltaChunk(java.lang.String path, SVNDiffWindow diffWindow) Collects a next delta chunk.voidtextDeltaEnd(java.lang.String path) Finalizes collecting text delta(s).Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
myWCContext
-
myTargetBasename
private java.lang.String myTargetBasename -
myAnchorAbspath
private java.io.File myAnchorAbspath -
myTargetAbspath
private java.io.File myTargetAbspath -
myExtensionPatterns
private java.lang.String[] myExtensionPatterns -
myTargetRevision
private long myTargetRevision -
myRequestedDepth
-
myIsDepthSticky
private boolean myIsDepthSticky -
myIsUseCommitTimes
private boolean myIsUseCommitTimes -
rootOpened
private boolean rootOpened -
myIsTargetDeleted
private boolean myIsTargetDeleted -
myIsUnversionedObstructionsAllowed
private boolean myIsUnversionedObstructionsAllowed -
mySwitchRelpath
private java.io.File mySwitchRelpath -
myReposRootURL
-
myReposUuid
private java.lang.String myReposUuid -
mySkippedTrees
private java.util.Set<java.io.File> mySkippedTrees -
myDeltaProcessor
-
myExternalsStore
-
myCurrentDirectory
-
myCurrentFile
-
myAddsAsModification
private boolean myAddsAsModification -
myDirEntries
-
myIsCleanCheckout
private boolean myIsCleanCheckout -
myWCRootAbsPath
private java.io.File myWCRootAbsPath -
myInheritableProperties
private java.util.Map<java.io.File,java.util.Map<java.lang.String, myInheritablePropertiesSVNProperties>> -
myConflictHandler
-
-
Constructor Details
-
SVNUpdateEditor17
private SVNUpdateEditor17() -
SVNUpdateEditor17
public SVNUpdateEditor17(SVNWCContext wcContext, java.io.File anchorAbspath, java.lang.String targetBasename, java.util.Map<java.io.File, java.util.Map<java.lang.String, throws SVNExceptionSVNProperties>> inheritableProperties, SVNURL reposRootUrl, java.lang.String reposUuid, SVNURL switchURL, SVNExternalsStore externalsStore, boolean allowUnversionedObstructions, boolean depthIsSticky, SVNDepth depth, java.lang.String[] preservedExts, ISVNDirFetcher dirFetcher) - Throws:
SVNException
-
-
Method Details
-
createUpdateEditor
public static ISVNUpdateEditor createUpdateEditor(SVNWCContext context, long targetRevision, java.io.File anchorAbspath, java.lang.String targetName, java.util.Map<java.io.File, java.util.Map<java.lang.String, throws SVNExceptionSVNProperties>> inheritableProperties, boolean useCommitTimes, SVNURL switchURL, SVNDepth depth, boolean depthIsSticky, boolean allowUnversionedObstructions, boolean addsAsModifications, boolean serverPerformsFiltering, boolean cleanCheckout, ISVNDirFetcher dirFetcher, SVNExternalsStore externalsStore, java.lang.String[] preservedExtensions, ISVNConflictHandler conflictHandler) - Throws:
SVNException
-
createUpdateEditor
public static ISVNUpdateEditor createUpdateEditor(SVNWCContext wcContext, java.io.File anchorAbspath, java.lang.String target, java.util.Map<java.io.File, java.util.Map<java.lang.String, throws SVNExceptionSVNProperties>> inheritableProperties, SVNURL reposRoot, SVNURL switchURL, SVNExternalsStore externalsStore, boolean allowUnversionedObstructions, boolean depthIsSticky, SVNDepth depth, java.lang.String[] preservedExts, ISVNDirFetcher dirFetcher) - Throws:
SVNException
-
initExcludedDirectoryEntries
- Throws:
SVNException
-
targetRevision
Description copied from interface:ISVNEditorSets the target revision the operation is running for. For example, the target revision to which an update is running.- Specified by:
targetRevisionin interfaceISVNEditor- Parameters:
revision- a revision number- Throws:
SVNException
-
getTargetRevision
public long getTargetRevision()- Specified by:
getTargetRevisionin interfaceISVNUpdateEditor
-
rememberSkippedTree
- Throws:
SVNException
-
getWCRootAbsPath
- Throws:
SVNException
-
openRoot
Description copied from interface:ISVNEditorOpens the root directory on which the operation was invoked. All property changes as well as entries adding/deletion will be applied to this root directory. When coming back up to this root (after traversing the entire tree) you should close the root by callingISVNEditor.closeDir().- Specified by:
openRootin interfaceISVNEditor- Parameters:
revision- the revision number of the root directory- Throws:
SVNException
-
doNotification
private void doNotification(java.io.File localAbspath, SVNNodeKind kind, SVNEventAction action, SVNURL url, SVNURL previousURL) throws SVNException - Throws:
SVNException
-
alreadyInATreeConflict
private SVNUpdateEditor17.AlreadyInTreeConflictInfo alreadyInATreeConflict(java.io.File localAbspath) throws SVNException - Throws:
SVNException
-
deleteEntry
Description copied from interface:ISVNEditorDeletes an entry.In a commit - deletes an entry from a repository. In an update - deletes an entry locally (since it has been deleted in the repository). In a status - informs that an entry has been deleted.
- Specified by:
deleteEntryin interfaceISVNEditor- Parameters:
path- an entry path relative to the root directory opened byopenRoot()revision- the revision number ofpath- Throws:
SVNException
-
isNodeAlreadyConflicted
private SVNUpdateEditor17.NodeAlreadyConflictedInfo isNodeAlreadyConflicted(java.io.File localAbspath) throws SVNException - Throws:
SVNException
-
checkTreeConflict
private SVNSkel checkTreeConflict(java.io.File localAbspath, ISVNWCDb.SVNWCDbStatus workingStatus, boolean existsInRepos, SVNNodeKind expectedKind, SVNConflictAction action) throws SVNException - Throws:
SVNException
-
absentDir
Description copied from interface:ISVNEditorIndicates that a path is present as a subdirectory in the edit source, but can not be conveyed to the edit consumer (perhaps because of authorization restrictions).- Specified by:
absentDirin interfaceISVNEditor- Parameters:
path- a dir path relative to the root directory opened byopenRoot()- Throws:
SVNException
-
absentFile
Description copied from interface:ISVNEditorIndicates that a path is present as a file in the edit source, but can not be conveyed to the edit consumer (perhaps because of authorization restrictions).- Specified by:
absentFilein interfaceISVNEditor- Parameters:
path- a file path relative to the root directory opened byopenRoot()- Throws:
SVNException
-
absentEntry
- Throws:
SVNException
-
addDir
public void addDir(java.lang.String path, java.lang.String copyFromPath, long copyFromRevision) throws SVNException Description copied from interface:ISVNEditorAdds a directory.In a commit - adds a new directory to a repository. In an update - locally adds a directory that was added in the repository. In a status - informs about a new directory scheduled for addition.
If
copyFromPathis not null then it says thatpathis copied fromcopyFromPathlocated incopyFromRevision.- Specified by:
addDirin interfaceISVNEditor- Parameters:
path- a directory path relative to the root directory opened byopenRoot()copyFromPath- an ancestor of the added directorycopyFromRevision- the revision of the ancestor- Throws:
SVNException
-
openDir
Description copied from interface:ISVNEditorOpens a directory. All property changes as well as entries adding/deletion can be applied to this directory.- Specified by:
openDirin interfaceISVNEditor- Parameters:
path- a directory path relative to the root directory opened byopenRoot()revision- the revision of the directory- Throws:
SVNException
-
changeDirProperty
Description copied from interface:ISVNEditorChanges the value of a property of the currently opened/added directory.- Specified by:
changeDirPropertyin interfaceISVNEditor- Parameters:
name- the name of a property to be changedvalue- new property value- Throws:
SVNException- See Also:
-
closeDir
Description copied from interface:ISVNEditorCloses the currently opened directory fixing all changes of its properties and/or entries. Closing a directory picks up an editor to a parent directory.- Specified by:
closeDirin interfaceISVNEditor- Throws:
SVNException
-
addFile
public void addFile(java.lang.String path, java.lang.String copyFromPath, long copyFromRevision) throws SVNException Description copied from interface:ISVNEditorAdds a file.In a commit - adds a new file to a repository. In an update - locally adds a file that was added in the repository. In a status - informs about a new file scheduled for addition.
If
copyFromPathis not null then it says thatpathis copied fromcopyFromPathlocated incopyFromRevision.- Specified by:
addFilein interfaceISVNEditor- Parameters:
path- a file path relative to the root directory opened byopenRoot()copyFromPath- an ancestor of the added filecopyFromRevision- the revision of the ancestor- Throws:
SVNException
-
openFile
Description copied from interface:ISVNEditorOpens a file. After it's opened, apply delta to its contents or change the file properties.- Specified by:
openFilein interfaceISVNEditor- Parameters:
path- a file path relative to the root directory opened byopenRoot()revision- the revision of the file- Throws:
SVNException
-
changeFileProperty
public void changeFileProperty(java.lang.String path, java.lang.String propertyName, SVNPropertyValue propertyValue) throws SVNException Description copied from interface:ISVNEditorChanges the value of a property of the currently opened/added file.- Specified by:
changeFilePropertyin interfaceISVNEditor- Parameters:
path- file path relative to the root of this editorpropertyName- property namepropertyValue- property value- Throws:
SVNException
-
closeFile
public void closeFile(java.lang.String path, java.lang.String expectedMd5Digest) throws SVNException Description copied from interface:ISVNEditorCloses the opened file fixing all properties and/or contents changes.- Specified by:
closeFilein interfaceISVNEditor- Parameters:
path- a file path relative to the root directory opened byopenRoot()expectedMd5Digest- an MD5 checksum for the modified file- Throws:
SVNException- if the calculated upon the actual changed contents checksum does not match the expectedtextChecksum
-
closeEdit
Description copied from interface:ISVNEditorCloses this editor finalizing the whole operation the editor was used for. In a commit - sends collected data to commit a transaction.- Specified by:
closeEditin interfaceISVNEditor- Returns:
- a committed revision information
- Throws:
SVNException
-
abortEdit
Description copied from interface:ISVNEditorAborts the current running editor due to errors occured.If an exception is thrown from an editor's method, call this method to abort the editor.
- Specified by:
abortEditin interfaceISVNEditor- Throws:
SVNException
-
applyTextDelta
public void applyTextDelta(java.lang.String path, java.lang.String expectedChecksum) throws SVNException Description copied from interface:ISVNDeltaConsumerStarts applying text delta(s) to an opened file.- Specified by:
applyTextDeltain interfaceISVNDeltaConsumer- Parameters:
path- a file path relative to the edit root directoryexpectedChecksum- an MD5 checksum for the base file contents (before the file is changed)- Throws:
SVNException- if the calculated base file checksum didn't match the expectedbaseChecksum
-
textDeltaChunk
public java.io.OutputStream textDeltaChunk(java.lang.String path, SVNDiffWindow diffWindow) throws SVNException Description copied from interface:ISVNDeltaConsumerCollects a next delta chunk. The return type is nomore relevant and is left only for backward compatibility. So, the return value may be just null. Otherwise if it's not null, the stream will be immediately closed.If there are more than one windows for the file, this method is called several times.
- Specified by:
textDeltaChunkin interfaceISVNDeltaConsumer- Parameters:
path- a file path relative to the edit root directorydiffWindow- a next diff window- Returns:
- an output stream
- Throws:
SVNException
-
textDeltaEnd
Description copied from interface:ISVNDeltaConsumerFinalizes collecting text delta(s).- Specified by:
textDeltaEndin interfaceISVNDeltaConsumer- Parameters:
path- a file path relative to the edit root directory- Throws:
SVNException
-
makeDirectoryBaton
private SVNUpdateEditor17.DirectoryBaton makeDirectoryBaton(java.lang.String path, SVNUpdateEditor17.DirectoryBaton parent, boolean adding) throws SVNException - Throws:
SVNException
-
makeFileBaton
private SVNUpdateEditor17.FileBaton makeFileBaton(SVNUpdateEditor17.DirectoryBaton parent, java.lang.String path, boolean adding) throws SVNException - Throws:
SVNException
-
isNodePresent
-
createTreeConflict
private SVNTreeConflictDescription createTreeConflict(java.io.File localAbspath, SVNConflictReason reason, SVNConflictAction action, SVNNodeKind theirNodeKind, java.io.File theirRelpath) throws SVNException - Throws:
SVNException
-
maybeBumpDirInfo
- Throws:
SVNException
-
accumulateLastChange
public static SVNUpdateEditor17.AccumulatedChangeInfo accumulateLastChange(java.io.File localAbspath, SVNProperties entryProps) throws SVNException - Throws:
SVNException
-
performFileMerge
public static SVNWCContext.MergeInfo performFileMerge(SVNWCContext.MergeInfo mergeInfo, SVNWCContext context, java.io.File localAbsPath, java.io.File wriAbsPath, SvnChecksum newChecksum, SvnChecksum originalChecksum, SVNProperties actualProperties, java.lang.String[] extPatterns, long oldRevision, long targetRevision, SVNProperties propChanges) throws SVNException - Throws:
SVNException
-
mergeFile
private SVNUpdateEditor17.MergeFileInfo mergeFile(SVNUpdateEditor17.FileBaton fb, SVNUpdateEditor17.MergeFileInfo mergeFileInfo, SVNProperties actualProps, SVNDate lastChangedDate) throws SVNException - Throws:
SVNException
-
completeConflict
public void completeConflict(SVNSkel conflict, java.io.File localAbsPath, java.io.File oldReposRelPath, long oldRevision, java.io.File newReposRelPath, SVNNodeKind localKind, SVNNodeKind targetKind) throws SVNException - Throws:
SVNException
-