Class SVNWCDb
- All Implemented Interfaces:
ISVNWCDb
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
class
private static class
private class
class
class
private static class
private class
static class
private class
private static class
private static class
private static class
private static class
class
private class
class
private class
private class
private static class
private static class
private class
static class
private static class
private static class
protected static class
private class
private static class
private class
private class
private class
private class
private static class
private class
private static class
private class
Nested classes/interfaces inherited from interface org.tmatesoft.svn.core.internal.wc17.db.ISVNWCDb
ISVNWCDb.Moved, ISVNWCDb.NodeInstallInfo, ISVNWCDb.SVNWCDbBaseMovedToData, ISVNWCDb.SVNWCDbInfo, ISVNWCDb.SVNWCDbKind, ISVNWCDb.SVNWCDbLock, ISVNWCDb.SVNWCDbNodeCheckReplaceData, ISVNWCDb.SVNWCDbOpenMode, ISVNWCDb.SVNWCDbStatus, ISVNWCDb.SVNWCDbUpgradeData, ISVNWCDb.SwitchedInfo, ISVNWCDb.WCDbAdditionInfo, ISVNWCDb.WCDbBaseInfo, ISVNWCDb.WCDbDeletionInfo, ISVNWCDb.WCDbInfo, ISVNWCDb.WCDbRepositoryInfo, ISVNWCDb.WCDbWorkQueueInfo
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
private ISVNOptions
private java.util.Map<java.lang.String,
SVNWCDbDir> private boolean
static final int
(package private) static final long
private boolean
private org.tmatesoft.sqljet.core.internal.SqlJetPagerJournalMode
private boolean
static final long
Fields inherited from interface org.tmatesoft.svn.core.internal.wc17.db.ISVNWCDb
INVALID_FILESIZE, INVALID_REVNUM, PRISTINE_STORAGE_RELPATH, PRISTINE_TEMPDIR_RELPATH, SDB_FILE, SDB_FILE_UPGRADE, WC_FORMAT_17, WC_FORMAT_18, WC_HAS_WORK_QUEUE, WCROOT_TEMPDIR_RELPATH
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addBaseDirectory
(java.io.File localAbsPath, java.io.File reposRelPath, SVNURL reposRootUrl, java.lang.String reposUuid, long revision, SVNProperties props, long changedRev, SVNDate changedDate, java.lang.String changedAuthor, java.util.List<java.io.File> children, SVNDepth depth, SVNProperties davCache, SVNSkel conflict, boolean updateActualProps, SVNProperties actualProps, java.util.Map<java.lang.String, SVNProperties> iprops, SVNSkel workItems) Add or replace a directory in the BASE tree.void
addBaseExcludedNode
(java.io.File localAbsPath, java.io.File reposRelPath, SVNURL reposRootUrl, java.lang.String reposUuid, long revision, ISVNWCDb.SVNWCDbKind kind, ISVNWCDb.SVNWCDbStatus status, SVNSkel conflict, SVNSkel workItems) Create a node in the BASE tree that is present in name only.void
addBaseFile
(java.io.File localAbspath, java.io.File reposRelpath, SVNURL reposRootUrl, java.lang.String reposUuid, long revision, SVNProperties props, long changedRev, SVNDate changedDate, java.lang.String changedAuthor, SvnChecksum checksum, SVNProperties davCache, boolean deleteWorking, boolean updateActualProps, SVNProperties actualProps, boolean keepRecordedInfo, boolean insertBaseDeleted, java.util.Map<java.lang.String, SVNProperties> iprops, SVNSkel conflict, SVNSkel workItems) Add or replace a file in the BASE tree.void
addBaseNotPresentNode
(java.io.File localAbspath, java.io.File reposRelPath, SVNURL reposRootUrl, java.lang.String reposUuid, long revision, ISVNWCDb.SVNWCDbKind kind, SVNSkel conflict, SVNSkel workItems) void
addBaseSymlink
(java.io.File localAbsPath, java.io.File reposRelPath, SVNURL reposRootUrl, java.lang.String reposUuid, long revision, SVNProperties props, long changedRev, SVNDate changedDate, java.lang.String changedAuthor, java.io.File target, SVNProperties davCache, SVNSkel conflict, boolean updateActualProps, SVNProperties acutalProps, SVNSkel workItems) Add or replace a symlink in the BASE tree.private void
addChildren
(java.util.Set<java.lang.String> children, SVNSqlJetStatement stmt) private void
addExcludedOrNotPresentNode
(java.io.File localAbspath, java.io.File reposRelpath, SVNURL reposRootUrl, java.lang.String reposUuid, long revision, ISVNWCDb.SVNWCDbKind kind, ISVNWCDb.SVNWCDbStatus status, SVNSkel conflict, SVNSkel workItems) void
addLock
(java.io.File localAbsPath, ISVNWCDb.SVNWCDbLock lock) Add or replace LOCK for LOCAL_ABSPATH to DB.private static void
addSingleWorkItem
(SVNSqlJetDb sDb, SVNSkel workItem) static void
addWorkItems
(SVNSqlJetDb sDb, SVNSkel skel) void
addWorkQueue
(java.io.File wcRootAbsPath, SVNSkel workItem) In the WCROOT associated with DB and WRI_ABSPATH, add WORK_ITEM to the wcroot's work queue.baseMovedTo
(java.io.File localAbsPath) borrowDbTemp
(java.io.File localDirAbsPath, ISVNWCDb.SVNWCDbOpenMode mode) private void
catchCopyOfAbsent
(SVNWCDbDir pdh, java.io.File localRelPath) private void
catchCopyOfServerExcluded
(SVNWCDbRoot wcRoot, java.io.File localRelpath) boolean
checkPristine
(java.io.File wcRootAbsPath, SvnChecksum checksum) Check for presence, according to the given mode (on how hard we should examine things)private boolean
childrenMatch
(java.util.List<java.lang.String> srcChildren, java.util.List<java.lang.String> dstChildren) void
cleanupPristine
(java.io.File localAbsPath) Remove all unreferenced pristines belonging to WRI_ABSPATH in DB.void
clearDavCacheRecursive
(java.io.File localAbsPath) void
close()
Close DB.private void
closeManyWCRoots
(java.util.Set<SVNWCDbRoot> roots) java.util.List<SVNWCContext.CommittableExternalInfo>
committableExternalsBelow
(java.io.File localAbsPath, boolean immediatesOnly) void
completedWorkQueue
(java.io.File wcRootAbsPath, long id) In the WCROOT associated with DB and WRI_ABSPATH, mark work item ID as completed.private ISVNWCDb.SVNWCDbStatus
private SVNWCDb.CreateDbInfo
createDb
(java.io.File dirAbsPath, SVNURL reposRootUrl, java.lang.String reposUuid, java.lang.String sdbFileName, int workingCopyFormat, boolean isUpgrade) long
createReposId
(SVNSqlJetDb sDb, SVNURL reposRootUrl, java.lang.String reposUuid) For a given REPOS_ROOT_URL/REPOS_UUID pair, return the existing REPOS_ID value.private void
deleteUpdateMovedTo
(SVNWCDbRoot wcRoot, java.io.File childMovedFromRelPath, int opDepth, java.io.File newMovedToRelPath) private SVNWCDb.ReposInfo2
determineReposInfo
(SVNWCDbDir pdh, java.io.File localRelpath) private void
driveTreeConflictEditor
(SVNTreeConflictEditor treeConflictEditor, java.io.File srcRelPath, java.io.File dstRelPath, int srcOpDepth, SVNOperation operation, SVNConflictReason localChange, SVNConflictAction incomingChange, SVNConflictVersion oldVersion, SVNConflictVersion newVersion, SVNWCDbRoot wcRoot) void
dropRoot
(java.io.File localAbsPath) void
void
extendParentDelete
(SVNSqlJetDb db, long wcId, java.io.File localRelPath, SVNNodeKind kind, int opDepth) long
fetchReposId
(SVNSqlJetDb db, SVNURL reposRootUrl, java.lang.String reposUuid) fetchReposInfo
(SVNSqlJetDb sDb, long repos_id) private static void
fetchReposInfo
(ISVNWCDb.WCDbRepositoryInfo reposInfo, SVNSqlJetDb sdb, long reposId) fetchRepositoryInfo
(SVNSqlJetDb sDb, long repos_id) private long
fetchWCId
(SVNSqlJetDb sDb) fetchWorkQueue
(java.io.File wcRootAbsPath) In the WCROOT associated with DB and WRI_ABSPATH, fetch a work item that needs to be completed.private void
flushEntries
(SVNWCDbRoot wcRoot, java.io.File localAbsPath, SVNDepth depth) void
forgetDirectoryTemp
(java.io.File localDirAbspath) java.io.File
fromRelPath
(java.io.File wriAbsPath, java.io.File localRelPath) Compute the local abs path for a localRelPath located within the working copy identified by wcRootAbsPath.private java.util.Set<java.lang.String>
gatherChildren
(java.io.File localAbsPath, boolean baseOnly, boolean workOnly) void
gatherExternalDefinitions
(java.io.File localAbsPath, SVNExternalsStore externals) java.util.List<java.lang.String>
gatherRepoChildren
(SVNWCDbRoot root, java.io.File localRelpath, long opDepth) java.util.Set<java.lang.String>
getBaseChildren
(java.io.File localAbsPath) Return a list of the BASE tree node's children's names.java.util.Map<java.lang.String,
ISVNWCDb.WCDbBaseInfo> getBaseChildrenMap
(java.io.File localAbsPath, boolean fetchLocks) java.util.Map<java.lang.String,
ISVNWCDb.WCDbBaseInfo> getBaseChildrenMap
(SVNWCDbRoot wcRoot, java.io.File localRelPath, boolean fetchLocks) getBaseDavCache
(java.io.File localAbsPath) Retrieve the dav cache for LOCAL_ABSPATH.getBaseInfo
(java.io.File localAbsPath, ISVNWCDb.WCDbBaseInfo.BaseInfoField... fields) Retrieve information about a node in the BASE tree.getBaseInfo
(SVNWCDbRoot root, java.io.File localRelPath, ISVNWCDb.WCDbBaseInfo.BaseInfoField... fields) getBaseProps
(java.io.File localAbsPath) Return the properties of the node LOCAL_ABSPATH in the BASE tree.java.util.Set<java.lang.String>
getChildrenOfWorkingNode
(java.io.File localAbsPath) java.util.Map<java.lang.String,
ISVNWCDb.SVNWCDbKind> getChildrenOpDepth
(SVNWCDbRoot wcRoot, java.io.File localRelPath, int opDepth) java.util.List<java.io.File>
getConflictMarkerFiles
(java.io.File localAbsPath) java.util.Map<java.io.File,
java.io.File> getExternalsDefinedBelow
(java.io.File localAbsPath) java.lang.String
getFileExternalTemp
(java.io.File path) Return the serialized file external info (from BASE) for LOCAL_ABSPATH.int
getFormatTemp
(java.io.File localDirAbsPath) temp function.private SVNWCDb.UpdateMovedAwayNodeInfo
getInfo
(SVNWCDbRoot wcRoot, java.io.File localRelPath, int opDepth) static <E extends java.lang.Enum<E>>
java.util.EnumSet<E>getInfoFields
(java.lang.Class<E> clazz, E... fields) private long[]
getMinMaxRevisions
(SVNWCDbRoot wcRoot, java.io.File localRelPath, boolean committed) getMovedTo
(boolean scan, SVNWCDbSelectDeletionInfo stmt, java.io.File currentRelPath, SVNWCDbRoot wcRoot, java.io.File localRelPath) java.util.Map<SVNURL,
java.lang.String> getNodeLockTokensRecursive
(java.io.File localAbsPath) private int
getOldVersion
(java.io.File localAbsPath) private SVNWCDbDir
getOrCreateDir
(java.io.File localDirAbspath, boolean createAllowed) getPristineMD5
(java.io.File wcRootAbsPath, SvnChecksum sha1Checksum) Get the MD-5 checksum of a pristine text identified by its SHA-1 checksum SHA1_CHECKSUM.java.io.File
getPristinePath
(java.io.File wcRootAbsPath, SvnChecksum checksum) Get the path to the pristine text file identified by SHA1_CHECKSUM.getPristineSHA1
(java.io.File wcRootAbsPath, SvnChecksum md5Checksum) Get the SHA-1 checksum of a pristine text identified by its MD-5 checksum MD5_CHECKSUM.java.io.File
getPristineTempDir
(java.io.File wcRootAbsPath) Get a directory in which the caller should create a uniquely named file for later installation as a pristine text file.getSDb
(java.io.File localAbsPath) private SVNSqlJetStatement
getStatementForPath
(java.io.File localAbsPath, SVNWCDbStatements statementIndex) private SVNWCDb.TcInfo
getTcInfo
(java.io.File srcAbsPath) java.io.File
getWCRoot
(java.io.File wcRootAbspath) java.io.File
getWCRootTempDir
(java.io.File localAbspath) java.util.Set<java.lang.String>
getWorkingChildren
(java.io.File localAbsPath) static ISVNWCDb.SVNWCDbStatus
void
globalCommit
(java.io.File localAbspath, long newRevision, long changedRevision, SVNDate changedDate, java.lang.String changedAuthor, SvnChecksum newChecksum, java.util.List<java.io.File> newChildren, SVNProperties newDavCache, boolean keepChangelist, boolean noUnlock, SVNSkel workItems) Collapse the WORKING and ACTUAL tree changes down into BASE, called for each committed node.void
globalRecordFileinfo
(java.io.File localAbspath, long translatedSize, long lastModTime) Record the TRANSLATED_SIZE and LAST_MOD_TIME for a versioned node.void
init
(java.io.File localAbsPath, java.io.File reposRelPath, SVNURL reposRootUrl, java.lang.String reposUuid, long initialRev, SVNDepth depth, int workingCopyFormat) Initialize the SqlDB for LOCAL_ABSPATH, which should be a working copy path.void
insertIncompleteChildren
(SVNSqlJetDb db, long wcId, java.io.File localRelpath, long reposId, java.io.File reposPath, long revision, java.util.List<java.io.File> children, long opDepth) void
installPristine
(java.io.File tempfileAbspath, SvnChecksum sha1Checksum, SvnChecksum md5Checksum) Install the file TEMPFILE_ABSPATH (which is sitting in a directory given byISVNWCDb.getPristineTempDir(File)
) into the pristine data store, to be identified by the SHA-1 checksum of its contents, SHA1_CHECKSUM.static boolean
isAbsolute
(java.io.File localAbsPath) boolean
isNodeHidden
(java.io.File localAbsPath) Return TRUE if LOCAL_ABSPATH in DB "is not present, and I haven't scheduled something over the top of it."isSwitched
(java.io.File localAbsPath) boolean
boolean
isWCLocked
(java.io.File localAbspath) private boolean
isWCLocked
(java.io.File localAbspath, long recurseDepth) private boolean
isWCLocked
(SVNWCDbRoot root, java.io.File localRelpath, long recurseDepth) boolean
isWCLockOwns
(java.io.File localAbspath, boolean exact) boolean
isWCRoot
(java.io.File localAbspath) boolean
isWCRoot
(java.io.File localAbspath, boolean isAdditionMode) void
markConflictInternal
(SVNWCDbRoot wcRoot, java.io.File localRelPath, SVNSkel conflictSkel) private void
markConflictInternal17
(SVNWCDbRoot wcRoot, java.io.File localRelPath, SVNSkel conflictSkel) private void
markTreeConflict
(java.io.File localRelPath, SVNWCDbRoot wcRoot, SVNConflictVersion oldVersion, SVNConflictVersion newVersion, java.io.File moveRootDstRelPath, SVNOperation operation, SVNNodeKind oldKind, SVNNodeKind newKind, java.io.File oldReposRelPath, SVNConflictReason reason, SVNConflictAction action, java.io.File moveSrcOpRootRelPath) long[]
minMaxRevisions
(java.io.File localAbsPath, boolean committed) navigateToParent
(SVNWCDbDir childPdh, SVNSqlJetDb.Mode sMode) nodeCheckReplace
(java.io.File localAbspath) void
obtainWCLock
(java.io.File localAbspath, int levelsToLock, boolean stealLock) obtainWcRoot
(java.io.File localAbspath) obtainWcRoot
(java.io.File localAbspath, boolean isAdditionMode) void
opAddDirectory
(java.io.File localAbsPath, SVNProperties props, SVNSkel workItems) Add a new versioned directory.void
opAddFile
(java.io.File localAbsPath, SVNProperties props, SVNSkel workItems) As a new file, there are no properties.void
opAddSymlink
(java.io.File localAbsPath, java.io.File target, SVNProperties props, SVNSkel workItems) void
opBumpRevisionPostUpdate
(java.io.File localAbsPath, SVNDepth depth, java.io.File newReposRelPath, SVNURL newReposRootURL, java.lang.String newReposUUID, long newRevision, java.util.Collection<java.io.File> excludedPaths, java.util.Map<java.io.File, java.util.Map<java.lang.String, SVNProperties>> inheritableProperties, ISVNEventHandler eventHandler) void
opCopy
(java.io.File srcAbsPath, java.io.File dstAbsPath, java.io.File dstOpRootAbsPath, boolean isMove, SVNSkel workItems) svn cp WCPATH WCPATH ...void
opCopyDir
(java.io.File localAbsPath, SVNProperties props, long changedRev, SVNDate changedDate, java.lang.String changedAuthor, java.io.File originalReposRelPath, SVNURL originalRootUrl, java.lang.String originalUuid, long originalRevision, java.util.List<java.io.File> children, boolean isMove, SVNDepth depth, SVNSkel conflict, SVNSkel workItems) Record a copy at LOCAL_ABSPATH from a repository directory.void
opCopyFile
(java.io.File localAbsPath, SVNProperties props, long changedRev, SVNDate changedDate, java.lang.String changedAuthor, java.io.File originalReposRelPath, SVNURL originalRootUrl, java.lang.String originalUuid, long originalRevision, SvnChecksum checksum, boolean updateActualProps, SVNProperties newActualProps, SVNSkel conflict, SVNSkel workItems) Record a copy at LOCAL_ABSPATH from a repository file.void
opCopyShadowedLayer
(java.io.File srcAbsPath, java.io.File dstAbsPath, boolean isMove) void
opDelete
(java.io.File localAbsPath, java.io.File movedToAbsPath, boolean deleteDirExternals, SVNSkel conflict, SVNSkel workItems, ISVNEventHandler eventHandler) opDepthMovedTo
(long opDepth, SVNWCDbRoot wcRoot, java.io.File localRelPath) private static int
opDepthOf
(SVNWCDbRoot wcRoot, java.io.File localRelPath) void
open
(ISVNWCDb.SVNWCDbOpenMode mode, ISVNOptions config, boolean autoUpgrade, boolean enforceEmptyWQ) Open a working copy administrative database context.private static SVNSqlJetDb
openDb
(java.io.File dirAbsPath, java.lang.String sdbFileName, SVNSqlJetDb.Mode sMode, org.tmatesoft.sqljet.core.internal.SqlJetPagerJournalMode journalMode, boolean temporaryDbInMemory) boolean
opHandleMoveBack
(java.io.File localAbsPath, java.io.File movedFromAbsPath, SVNSkel workItems) void
opMakeCopy
(java.io.File localAbspath, SVNSkel conflicts, SVNSkel workItems) void
opMakeCopyTemp
(java.io.File localAbspath, boolean removeBase) void
opMarkConflict
(java.io.File localAbspath, SVNSkel conflictSkel, SVNSkel workItems) void
opMarkResolved
(java.io.File localAbspath, boolean resolvedText, boolean resolvedProps, boolean resolvedTree, SVNSkel workItems) caller maintains ACTUAL, and how the resolution occurred.java.util.Map<java.lang.String,
SVNTreeConflictDescription> opReadAllTreeConflicts
(java.io.File localAbsPath) Return all the children of localAbsPath that are in tree conflicts.opReadTreeConflict
(java.io.File localAbsPath) Get any tree conflict associated with localAbspath in DB.void
opRemoveEntryTemp
(java.io.File localAbspath) void
opRemoveNode
(java.io.File localAbspath, long notPresentRevision, ISVNWCDb.SVNWCDbKind notPresentKind) void
opRemoveWorkingTemp
(java.io.File localAbspath) void
void
opSetBaseIncompleteTemp
(java.io.File localDirAbspath, boolean incomplete) void
opSetChangelist
(java.io.File localAbspath, java.lang.String changelistName, java.lang.String[] changeLists, SVNDepth depth, ISVNEventHandler eventHandler) use NULL to remove from a changelist.void
opSetDirDepthTemp
(java.io.File localAbspath, SVNDepth depth) void
opSetNewDirToIncompleteTemp
(java.io.File localAbspath, java.io.File reposRelpath, SVNURL reposRootURL, java.lang.String reposUuid, long revision, SVNDepth depth, boolean insertBaseDeleted, boolean deleteWorking, SVNSkel conflict, SVNSkel workItems) void
opSetPropertyConflictMarkerFileTemp
(java.io.File localAbspath, java.lang.String prejBasename) void
opSetProps
(java.io.File localAbsPath, SVNProperties props, SVNSkel conflict, boolean clearRecordedInfo, SVNSkel workItems) Set the properties of the node LOCAL_ABSPATH in the ACTUAL tree to PROPS.private void
opSetRevAndReposRelpath
(SVNWCDbRoot wcRoot, java.io.File localRelpath, java.util.Map<java.lang.String, SVNProperties> nodeIprops, long revision, boolean setReposRelpath, java.io.File reposRelpath, SVNURL reposRootUrl, java.lang.String reposUuid) void
opSetRevAndReposRelpathTemp
(java.io.File localAbspath, long revision, boolean setReposRelpath, java.io.File reposRelpath, SVNURL reposRootUrl, java.lang.String reposUuid) void
opSetTextConflictMarkerFilesTemp
(java.io.File localAbspath, java.io.File oldBasename, java.io.File newBasename, java.io.File wrkBasename) void
opSetTreeConflict
(java.io.File localAbspath, SVNTreeConflictDescription treeConflict) Set the tree conflict on LOCAL_ABSPATH in DB to TREE_CONFLICT.void
opStartDirectoryUpdateTemp
(java.io.File localAbspath, java.io.File newReposRelpath, long newRevision) parseDir
(java.io.File localAbsPath, SVNSqlJetDb.Mode sMode) parseDir
(java.io.File localAbspath, SVNSqlJetDb.Mode sMode, boolean isDetectWCGeneration, boolean isAdditionMode) private boolean
propsMatch
(SVNProperties srcProps, SVNProperties dstProps) private java.util.Map<java.lang.String,
SVNTreeConflictDescription> readAllTreeConflicts
(SVNWCDbDir pdh, java.io.File localRelpath) private java.util.Map<java.lang.String,
SVNTreeConflictDescription> readAllTreeConflicts17
(SVNWCDbDir pdh, java.io.File localRelpath) java.util.Set<java.lang.String>
readChildren
(java.io.File localAbsPath) Return the basenames of the immediate children of LOCAL_ABSPATH in DB.void
readChildren
(java.io.File localAbsPath, java.util.Map<java.lang.String, ISVNWCDb.SVNWCDbInfo> children, java.util.Set<java.lang.String> conflicts) void
readChildren
(SVNWCDbRoot root, java.io.File localRelPath, java.util.Map<java.lang.String, ISVNWCDb.SVNWCDbInfo> children, java.util.Set<java.lang.String> conflicts) readConflict
(java.io.File localAbsPath) readConflictInternal
(SVNWCDbRoot wcRoot, java.io.File localRelPath) private SVNSkel
readConflictInternal17
(SVNWCDbRoot wcRoot, java.io.File localRelPath) java.util.List<SVNConflictDescription>
readConflicts
(java.io.File localAbsPath) Return all conflicts that have LOCAL_ABSPATH as victim.java.util.List<SVNWCConflictDescription17>
readConflicts
(java.io.File localAbsPath, boolean createTempFiles) private java.util.List<SVNWCConflictDescription17>
readConflicts17
(SVNWCDbRoot wcRoot, java.io.File localRelPath, boolean createTempFiles) java.util.List<java.lang.String>
readConflictVictims
(java.io.File localAbsPath) Return the basenames of the immediate children of LOCAL_ABSPATH in DB that are conflicted.private int
readFormatVersion
(java.io.File path) readInfo
(java.io.File localAbsPath, boolean isAdditionMode, StructureFields.NodeInfo... fields) readInfo
(java.io.File localAbsPath, ISVNWCDb.WCDbInfo.InfoField... fields) Retrieve information about a node.readInfo
(java.io.File localAbsPath, StructureFields.NodeInfo... fields) readInfo
(SVNWCDbRoot wcRoot, java.io.File localRelPath, ISVNWCDb.WCDbInfo.InfoField... fields) readInfoBelowWorking
(java.io.File localAbsPath) readInfoBelowWorking
(SVNWCDbRoot wcRoot, java.io.File localRelPath, int belowOpDepth) readKind
(java.io.File localAbsPath, boolean allowMissing) Return the kind of the node in DB at LOCAL_ABSPATH.readKind
(java.io.File localAbsPath, boolean allowMissing, boolean showDeleted, boolean showHidden) readNodeInstallInfo
(java.io.File localAbsPath, java.io.File wriAbsPath) long
readOpDepth
(SVNWCDbRoot root, java.io.File localRelPath) java.io.InputStream
readPristine
(java.io.File wcRootAbsPath, SvnChecksum checksum) Get a readable stream that will yield the pristine text identified by CHECKSUM (### which should/must be its SHA-1 checksum?).readPristineInfo
(java.io.File localAbspath) readPristineProperties
(java.io.File localAbsPath) Return the properties of the node LOCAL_ABSPATH in the WORKING tree (looking through to the BASE tree as required).readProperties
(java.io.File localAbsPath) Return the properties of the node LOCAL_ABSPATH in the ACTUAL tree (looking through to the WORKING or BASE tree as required).void
readPropertiesRecursively
(java.io.File localAbsPath, SVNDepth depth, boolean baseProperties, boolean pristineProperties, java.util.Collection<java.lang.String> changelists, ISvnObjectReceiver<SVNProperties> receiver) void
registerExternal
(java.io.File definingAbsPath, java.io.File localAbsPath, SVNNodeKind kind, SVNURL reposRootUrl, java.lang.String reposUuid, java.io.File reposRelPath, long operationalRevision, long revision) void
releaseWCLock
(java.io.File localAbspath) void
removeBase
(java.io.File localAbsPath) Remove a node from the BASE tree.void
removeBase
(java.io.File localAbsPath, boolean keepAsWorking, boolean queueDeletes, boolean removeLocks, long notPresentRevision, SVNSkel conflict, SVNSkel workItems) void
removeLock
(java.io.File localAbsPath) Remove any lock for LOCAL_ABSPATH in DB.void
removePristine
(java.io.File wcRootAbsPath, SvnChecksum checksum) Remove the pristine text with SHA-1 checksum SHA1_CHECKSUM from the pristine store, if it is not referenced by any of the (other) WC DB tables.private void
replaceMovedLayer
(SVNWCDbRoot wcRoot, java.io.File srcRelPath, java.io.File dstRelPath, int srcOpDepth) java.io.File
requiredLockForResolve
(java.io.File localAbsPath) void
resolveBreakMovedAway
(java.io.File localAbsPath, ISVNEventHandler eventHandler) void
resolveDeleteRaiseMovedAway
(java.io.File localAbsPath, ISVNEventHandler eventHandler) private SVNWCDb.ResolveMovedFrom
resolveMovedFrom
(SVNWCDbRoot root, java.io.File rootRelPath, java.io.File localRelPath, int opDepth) void
retractParentDelete
(SVNSqlJetDb db, long wcId, java.io.File localRelPath, int opDepth) scanAddition
(java.io.File localAbsPath, ISVNWCDb.WCDbAdditionInfo.AdditionInfoField... fields) Scan upwards for information about a known addition to the WORKING tree.scanBaseRepository
(java.io.File localAbsPath, ISVNWCDb.WCDbRepositoryInfo.RepositoryInfoField... fields) Scan for a BASE node's repository information.scanDeletion
(java.io.File localAbsPath, ISVNWCDb.WCDbDeletionInfo.DeletionInfoField... fields) Scan upwards for additional information about a deleted node.scanMoved
(java.io.File localAbsPath) private static long
scanUpwardsForRepos
(ISVNWCDb.WCDbRepositoryInfo reposInfo, SVNWCDbRoot wcroot, java.io.File localRelPath) Scan from LOCAL_RELPATH upwards through parent nodes until we find a parent that has values in the 'repos_id' and 'repos_relpath' columns.void
setActualProperties
(SVNSqlJetDb db, long wcId, java.io.File localRelpath, SVNProperties props) void
setBaseDavCache
(java.io.File localAbsPath, SVNProperties props) Set the dav cache for LOCAL_ABSPATH to PROPS.void
setJournalModel
(org.tmatesoft.sqljet.core.internal.SqlJetPagerJournalMode journalMode) void
setTemporaryDbInMemory
(boolean temporaryDbInMemory) void
setWC17SupportEnabled
(boolean allowed) private void
stealWCLock
(SVNWCDbRoot wcroot, java.io.File localRelpath) private void
suitableForMove
(SVNWCDbRoot wcRoot, java.io.File localRelPath) java.io.File
toRelPath
(java.io.File localAbsPath) Compute the LOCAL_RELPATH for the given LOCAL_ABSPATH.java.io.File
toRelPath
(java.io.File wriAbsPath, java.io.File localAbsPath) private long
updateActualConflict17
(SVNWCDbRoot wcRoot, java.io.File localRelpath, SVNSkel conflicts, boolean resolvedAll) private void
updateDepthValues
(java.io.File localAbspath, SVNWCDbDir pdh, java.io.File localRelpath, SVNDepth depth) void
updateMovedAwayConflictVictim
(java.io.File victimAbsPath, ISVNEventHandler eventHandler) private void
updateMovedAwayNode
(SVNTreeConflictEditor treeConflictEditor, java.io.File srcRelPath, java.io.File dstRelPath, int srcOpDepth, java.io.File moveRootDstRelPath, long moveRootDstRevision, SVNWCDbRoot wcRoot) static void
updateMoveListAdd
(SVNWCDbRoot wcRoot, java.io.File localRelPath, SVNEventAction eventAction, SVNNodeKind kind, SVNStatusType contentState, SVNStatusType propState) void
updateMoveListNotify
(SVNWCDbRoot wcRoot, long oldRevision, long newRevision, ISVNEventHandler eventHandler) void
upgradeBegin
(java.io.File localAbspath, ISVNWCDb.SVNWCDbUpgradeData upgradeData, SVNURL repositoryRootUrl, java.lang.String repositoryUUID, int targetWorkingCopyFormat) void
upgradeInsertExternal
(java.io.File localAbsPath, SVNNodeKind kind, java.io.File parentAbsPath, java.io.File defLocalAbsPath, java.io.File reposRelPath, SVNURL reposRootUrl, java.lang.String reposUuid, long defPegRevision, long defRevision) protected static void
void
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
FORMAT_FROM_SDB
public static final int FORMAT_FROM_SDB- See Also:
-
UNKNOWN_WC_ID
public static final long UNKNOWN_WC_ID- See Also:
-
INVALID_REPOS_ID
static final long INVALID_REPOS_ID- See Also:
-
config
-
autoUpgrade
private boolean autoUpgrade -
enforceEmptyWQ
private boolean enforceEmptyWQ -
dirData
-
journalMode
private org.tmatesoft.sqljet.core.internal.SqlJetPagerJournalMode journalMode -
temporaryDbInMemory
private boolean temporaryDbInMemory -
isAllowWC17Access
private boolean isAllowWC17Access
-
-
Constructor Details
-
SVNWCDb
public SVNWCDb()
-
-
Method Details
-
isAbsolute
public static boolean isAbsolute(java.io.File localAbsPath) -
getInfoFields
public static <E extends java.lang.Enum<E>> java.util.EnumSet<E> getInfoFields(java.lang.Class<E> clazz, E... fields) -
setWC17SupportEnabled
public void setWC17SupportEnabled(boolean allowed) -
isWC17AccessEnabled
public boolean isWC17AccessEnabled() -
open
public void open(ISVNWCDb.SVNWCDbOpenMode mode, ISVNOptions config, boolean autoUpgrade, boolean enforceEmptyWQ) Description copied from interface:ISVNWCDb
Open a working copy administrative database context.This context is (initially) not associated with any particular working copy directory or working copy root (wcroot). As operations are performed, this context will load the appropriate wcroot information.
It should be closed manually using
ISVNWCDb.close()
. In particular, this will close any SQLite databases that have been opened and cached.- Specified by:
open
in interfaceISVNWCDb
- Parameters:
mode
- indicates whether the caller knows all interactions will be read-only, whether writing will definitely happen, or whether a default should be chosen.config
- should hold the various configuration options that may apply to the administrative operation.autoUpgrade
- when is true, then the working copy databases will be upgraded when possible (when an old database is found/detected during the operation of aISVNWCDb
API). If it is detected that a manual upgrade is required, thenSVNErrorCode.WC_UPGRADE_REQUIRED
will be thrown from that API. Passing false will allow a bare minimum of APIs to function (most notably, theISVNWCDb.getFormatTemp(File)
function will always return a value) since most of these APIs expect a current-format database to be present.enforceEmptyWQ
- if is true, then any databases with stale work items in their work queue will raise an error when they are opened. The operation will raiseSVNErrorCode.WC_CLEANUP_REQUIRED
. Passing false for this routine means that the work queue is being processed (via 'svn cleanup') and all operations should be allowed.
-
setJournalModel
public void setJournalModel(org.tmatesoft.sqljet.core.internal.SqlJetPagerJournalMode journalMode) -
setTemporaryDbInMemory
public void setTemporaryDbInMemory(boolean temporaryDbInMemory) -
close
public void close()Description copied from interface:ISVNWCDb
Close DB. -
ensureNoUnfinishedTransactions
- Throws:
SVNException
-
closeManyWCRoots
-
getConfig
-
init
public void init(java.io.File localAbsPath, java.io.File reposRelPath, SVNURL reposRootUrl, java.lang.String reposUuid, long initialRev, SVNDepth depth, int workingCopyFormat) throws SVNException Description copied from interface:ISVNWCDb
Initialize the SqlDB for LOCAL_ABSPATH, which should be a working copy path.A REPOSITORY row will be constructed for the repository identified by REPOS_ROOT_URL and REPOS_UUID. Neither of these may be NULL.
A node will be created for the directory at REPOS_RELPATH will be added. If INITIAL_REV is greater than zero, then the node will be marked as "incomplete" because we don't know its children. Contrary, if the INITIAL_REV is zero, then this directory should represent the root and we know it has no children, so the node is complete.
DEPTH is the initial depth of the working copy, it must be a definite depth, not svn_depth_unknown.
- Specified by:
init
in interfaceISVNWCDb
- Throws:
SVNException
-
createDb
private SVNWCDb.CreateDbInfo createDb(java.io.File dirAbsPath, SVNURL reposRootUrl, java.lang.String reposUuid, java.lang.String sdbFileName, int workingCopyFormat, boolean isUpgrade) throws SVNException - Throws:
SVNException
-
createReposId
public long createReposId(SVNSqlJetDb sDb, SVNURL reposRootUrl, java.lang.String reposUuid) throws SVNException For a given REPOS_ROOT_URL/REPOS_UUID pair, return the existing REPOS_ID value. If one does not exist, then create a new one.- Throws:
SVNException
-
addWorkItems
- Throws:
SVNException
-
addSingleWorkItem
- Throws:
SVNException
-
getExternalsDefinedBelow
public java.util.Map<java.io.File,java.io.File> getExternalsDefinedBelow(java.io.File localAbsPath) throws SVNException - Specified by:
getExternalsDefinedBelow
in interfaceISVNWCDb
- Throws:
SVNException
-
gatherExternalDefinitions
public void gatherExternalDefinitions(java.io.File localAbsPath, SVNExternalsStore externals) throws SVNException - Specified by:
gatherExternalDefinitions
in interfaceISVNWCDb
- Throws:
SVNException
-
addBaseExcludedNode
public void addBaseExcludedNode(java.io.File localAbsPath, java.io.File reposRelPath, SVNURL reposRootUrl, java.lang.String reposUuid, long revision, ISVNWCDb.SVNWCDbKind kind, ISVNWCDb.SVNWCDbStatus status, SVNSkel conflict, SVNSkel workItems) throws SVNException Description copied from interface:ISVNWCDb
Create a node in the BASE tree that is present in name only.The new node will be located at LOCAL_ABSPATH, and correspond to the repository node described by <REPOS_RELPATH, REPOS_ROOT_URL, REPOS_UUID> at revision REVISION.
The node's kind is described by KIND, and the reason for its absence is specified by STATUS. Only three values are allowed for STATUS:
-
SVNWCDbStatus#Absent
-
ISVNWCDb.SVNWCDbStatus.Excluded
-
ISVNWCDb.SVNWCDbStatus.NotPresent
If CONFLICT is not NULL, then it describes a conflict for this node. The node will be record as conflicted (in ACTUAL).
Any work items that are necessary as part of this node construction may be passed in WORK_ITEMS.
- Specified by:
addBaseExcludedNode
in interfaceISVNWCDb
- Throws:
SVNException
-
-
addBaseDirectory
public void addBaseDirectory(java.io.File localAbsPath, java.io.File reposRelPath, SVNURL reposRootUrl, java.lang.String reposUuid, long revision, SVNProperties props, long changedRev, SVNDate changedDate, java.lang.String changedAuthor, java.util.List<java.io.File> children, SVNDepth depth, SVNProperties davCache, SVNSkel conflict, boolean updateActualProps, SVNProperties actualProps, java.util.Map<java.lang.String, SVNProperties> iprops, SVNSkel workItems) throws SVNExceptionDescription copied from interface:ISVNWCDb
Add or replace a directory in the BASE tree.The directory is located at LOCAL_ABSPATH on the local filesystem, and corresponds to <REPOS_RELPATH, REPOS_ROOT_URL, REPOS_UUID> in the repository, at revision REVISION.
The directory properties are given by the PROPS.
The last-change information is given by <CHANGED_REV, CHANGED_DATE, CHANGED_AUTHOR>.
The directory's children are listed in CHILDREN. The child nodes do NOT have to exist when this API is called. For each child node which does not exists, an "incomplete" node will be added. These child nodes will be added regardless of the DEPTH value. The caller must sort out which must be recorded, and which must be omitted.
This subsystem does not use DEPTH, but it can be recorded here in the BASE tree for higher-level code to use.
If CONFLICT is not NULL, then it describes a conflict for this node. The node will be record as conflicted (in ACTUAL).
Any work items that are necessary as part of this node construction may be passed in WORK_ITEMS.
- Specified by:
addBaseDirectory
in interfaceISVNWCDb
- Throws:
SVNException
-
deleteUpdateMovedTo
private void deleteUpdateMovedTo(SVNWCDbRoot wcRoot, java.io.File childMovedFromRelPath, int opDepth, java.io.File newMovedToRelPath) throws SVNException - Throws:
SVNException
-
resolveMovedFrom
private SVNWCDb.ResolveMovedFrom resolveMovedFrom(SVNWCDbRoot root, java.io.File rootRelPath, java.io.File localRelPath, int opDepth) throws SVNException - Throws:
SVNException
-
insertIncompleteChildren
public void insertIncompleteChildren(SVNSqlJetDb db, long wcId, java.io.File localRelpath, long reposId, java.io.File reposPath, long revision, java.util.List<java.io.File> children, long opDepth) throws SVNException - Throws:
SVNException
-
extendParentDelete
public void extendParentDelete(SVNSqlJetDb db, long wcId, java.io.File localRelPath, SVNNodeKind kind, int opDepth) throws SVNException - Throws:
SVNException
-
retractParentDelete
public void retractParentDelete(SVNSqlJetDb db, long wcId, java.io.File localRelPath, int opDepth) throws SVNException - Throws:
SVNException
-
addBaseFile
public void addBaseFile(java.io.File localAbspath, java.io.File reposRelpath, SVNURL reposRootUrl, java.lang.String reposUuid, long revision, SVNProperties props, long changedRev, SVNDate changedDate, java.lang.String changedAuthor, SvnChecksum checksum, SVNProperties davCache, boolean deleteWorking, boolean updateActualProps, SVNProperties actualProps, boolean keepRecordedInfo, boolean insertBaseDeleted, java.util.Map<java.lang.String, SVNProperties> iprops, SVNSkel conflict, SVNSkel workItems) throws SVNExceptionDescription copied from interface:ISVNWCDb
Add or replace a file in the BASE tree.The file is located at LOCAL_ABSPATH on the local filesystem, and corresponds to <REPOS_RELPATH, REPOS_ROOT_URL, REPOS_UUID> in the repository, at revision REVISION.
The file properties are given by the PROPS.
The last-change information is given by <CHANGED_REV, CHANGED_DATE, CHANGED_AUTHOR>.
The checksum of the file contents is given in CHECKSUM. An entry in the pristine text base is NOT required when this API is called.
If the translated size of the file (its contents, translated as defined by its properties) is known, then pass it as TRANSLATED_SIZE. Otherwise, pass
ISVNWCDb.INVALID_FILESIZE
.If CONFLICT is not NULL, then it describes a conflict for this node. The node will be record as conflicted (in ACTUAL).
Any work items that are necessary as part of this node construction may be passed in WORK_ITEMS.
- Specified by:
addBaseFile
in interfaceISVNWCDb
- Throws:
SVNException
-
addBaseSymlink
public void addBaseSymlink(java.io.File localAbsPath, java.io.File reposRelPath, SVNURL reposRootUrl, java.lang.String reposUuid, long revision, SVNProperties props, long changedRev, SVNDate changedDate, java.lang.String changedAuthor, java.io.File target, SVNProperties davCache, SVNSkel conflict, boolean updateActualProps, SVNProperties acutalProps, SVNSkel workItems) throws SVNException Description copied from interface:ISVNWCDb
Add or replace a symlink in the BASE tree.The symlink is located at LOCAL_ABSPATH on the local filesystem, and corresponds to <REPOS_RELPATH, REPOS_ROOT_URL, REPOS_UUID> in the repository, at revision REVISION.
The symlink's properties are given by the PROPS.
The last-change information is given by <CHANGED_REV, CHANGED_DATE, CHANGED_AUTHOR>.
The target of the symlink is specified by TARGET.
If CONFLICT is not NULL, then it describes a conflict for this node. The node will be record as conflicted (in ACTUAL).
Any work items that are necessary as part of this node construction may be passed in WORK_ITEMS.
- Specified by:
addBaseSymlink
in interfaceISVNWCDb
- Throws:
SVNException
-
addLock
Description copied from interface:ISVNWCDb
Add or replace LOCK for LOCAL_ABSPATH to DB.- Specified by:
addLock
in interfaceISVNWCDb
- Throws:
SVNException
-
addWorkQueue
Description copied from interface:ISVNWCDb
In the WCROOT associated with DB and WRI_ABSPATH, add WORK_ITEM to the wcroot's work queue.- Specified by:
addWorkQueue
in interfaceISVNWCDb
- Throws:
SVNException
-
checkPristine
Description copied from interface:ISVNWCDb
Check for presence, according to the given mode (on how hard we should examine things)- Specified by:
checkPristine
in interfaceISVNWCDb
- Throws:
SVNException
-
completedWorkQueue
Description copied from interface:ISVNWCDb
In the WCROOT associated with DB and WRI_ABSPATH, mark work item ID as completed. If an error occurs, then it is unknown whether the work item has been marked as completed.- Specified by:
completedWorkQueue
in interfaceISVNWCDb
- Throws:
SVNException
-
fetchWorkQueue
Description copied from interface:ISVNWCDb
In the WCROOT associated with DB and WRI_ABSPATH, fetch a work item that needs to be completed. Its identifier is returned in ID, and the data in WORK_ITEM.Items are returned in the same order they were queued. This allows for (say) queueing work on a parent node to be handled before that of its children.
If there are no work items to be completed, then ID will be set to zero, and WORK_ITEM to NULL.
- Specified by:
fetchWorkQueue
in interfaceISVNWCDb
- Throws:
SVNException
-
fromRelPath
public java.io.File fromRelPath(java.io.File wriAbsPath, java.io.File localRelPath) throws SVNException Description copied from interface:ISVNWCDb
Compute the local abs path for a localRelPath located within the working copy identified by wcRootAbsPath.This is the reverse of
ISVNWCDb.toRelPath(File)
. It should be used for returning a persisted relpath back into an abspath.- Specified by:
fromRelPath
in interfaceISVNWCDb
- Throws:
SVNException
-
getBaseChildren
public java.util.Set<java.lang.String> getBaseChildren(java.io.File localAbsPath) throws SVNException Description copied from interface:ISVNWCDb
Return a list of the BASE tree node's children's names.For the node indicated by LOCAL_ABSPATH, this function will return the names of all of its children in the list CHILDREN.
If the node is not a directory, then
SVNErrorCode.WC_NOT_WORKING_COPY
will be thrown.- Specified by:
getBaseChildren
in interfaceISVNWCDb
- Throws:
SVNException
-
getWorkingChildren
public java.util.Set<java.lang.String> getWorkingChildren(java.io.File localAbsPath) throws SVNException - Throws:
SVNException
-
getBaseDavCache
Description copied from interface:ISVNWCDb
Retrieve the dav cache for LOCAL_ABSPATH. ThrowSVNErrorCode.WC_PATH_NOT_FOUND
if no dav cache can be located for LOCAL_ABSPATH in DB.- Specified by:
getBaseDavCache
in interfaceISVNWCDb
- Throws:
SVNException
-
clearDavCacheRecursive
- Specified by:
clearDavCacheRecursive
in interfaceISVNWCDb
- Throws:
SVNException
-
getBaseInfo
public ISVNWCDb.WCDbBaseInfo getBaseInfo(java.io.File localAbsPath, ISVNWCDb.WCDbBaseInfo.BaseInfoField... fields) throws SVNException Description copied from interface:ISVNWCDb
Retrieve information about a node in the BASE tree.For the BASE node implied by LOCAL_ABSPATH from the local filesystem, return information in the provided OUT parameters. Each OUT parameter may be NULL, indicating that specific item is not requested.
If there is no information about this node, then
SVNErrorCode.WC_PATH_NOT_FOUND
will be thrown.The OUT parameters, and their "not available" values are:
STATUS n/a (always available) KIND n/a (always available) REVISION -1 REPOS_RELPATH NULL (caller should scan up) REPOS_ROOT_URL NULL (caller should scan up) REPOS_UUID NULL (caller should scan up) CHANGED_REV -1 CHANGED_DATE 0 CHANGED_AUTHOR NULL LAST_MOD_TIME 0 DEPTH SVNDepth.UNKNOWN
CHECKSUM NULL TRANSLATED_SIZE ISVNWCDb.INVALID_FILESIZE
TARGET NULL LOCK NULL If the STATUS is normal, and the REPOS_* values are NULL, then the caller should use
ISVNWCDb.scanBaseRepository(File, RepositoryInfoField...)
to scan up the BASE tree for the repository information.If DEPTH is requested, and the node is NOT a directory, then the value will be set to svn_depth_unknown. If LOCAL_ABSPATH is a link, it's up to the caller to resolve depth for the link's target.
If CHECKSUM is requested, and the node is NOT a file, then it will be set to NULL.
If TRANSLATED_SIZE is requested, and the node is NOT a file, then it will be set to
ISVNWCDb.INVALID_FILESIZE
.If TARGET is requested, and the node is NOT a symlink, then it will be set to NULL.
- Specified by:
getBaseInfo
in interfaceISVNWCDb
- Throws:
SVNException
-
getBaseInfo
public ISVNWCDb.WCDbBaseInfo getBaseInfo(SVNWCDbRoot root, java.io.File localRelPath, ISVNWCDb.WCDbBaseInfo.BaseInfoField... fields) throws SVNException - Throws:
SVNException
-
getBaseProps
Description copied from interface:ISVNWCDb
Return the properties of the node LOCAL_ABSPATH in the BASE tree.If the node has no properties, return an empty hash. It will never return the NULL.
If the node is not present in the BASE tree, throw an error.- Specified by:
getBaseProps
in interfaceISVNWCDb
- Throws:
SVNException
-
getFormatTemp
Description copied from interface:ISVNWCDb
temp function. return the FORMAT for the directory LOCAL_ABSPATH.- Specified by:
getFormatTemp
in interfaceISVNWCDb
- Throws:
SVNException
-
getPristineMD5
public SvnChecksum getPristineMD5(java.io.File wcRootAbsPath, SvnChecksum sha1Checksum) throws SVNException Description copied from interface:ISVNWCDb
Get the MD-5 checksum of a pristine text identified by its SHA-1 checksum SHA1_CHECKSUM. Return an error if the pristine text does not exist or its MD5 checksum is not found.- Specified by:
getPristineMD5
in interfaceISVNWCDb
- Throws:
SVNException
-
getPristinePath
public java.io.File getPristinePath(java.io.File wcRootAbsPath, SvnChecksum checksum) throws SVNException Description copied from interface:ISVNWCDb
Get the path to the pristine text file identified by SHA1_CHECKSUM. Error if it does not exist.### This is temporary - callers should not be looking at the file directly.
- Specified by:
getPristinePath
in interfaceISVNWCDb
- Throws:
SVNException
-
getPristineSHA1
public SvnChecksum getPristineSHA1(java.io.File wcRootAbsPath, SvnChecksum md5Checksum) throws SVNException Description copied from interface:ISVNWCDb
Get the SHA-1 checksum of a pristine text identified by its MD-5 checksum MD5_CHECKSUM. Return an error if the pristine text does not exist or its SHA-1 checksum is not found.Note: The MD-5 checksum is not strictly guaranteed to be unique in the database table, although duplicates are expected to be extremely rare.
### TODO: The behaviour is currently unspecified if the MD-5 checksum is not unique. Need to see whether this function is going to stay in use, and, if so, address this somehow.
- Specified by:
getPristineSHA1
in interfaceISVNWCDb
- Throws:
SVNException
-
getPristineTempDir
Description copied from interface:ISVNWCDb
Get a directory in which the caller should create a uniquely named file for later installation as a pristine text file.The directory is guaranteed to be one that
ISVNWCDb.installPristine(File, SvnChecksum, SvnChecksum)
can use: specifically, one from which it can atomically move the file.- Specified by:
getPristineTempDir
in interfaceISVNWCDb
- Throws:
SVNException
-
globalRecordFileinfo
public void globalRecordFileinfo(java.io.File localAbspath, long translatedSize, long lastModTime) throws SVNException Description copied from interface:ISVNWCDb
Record the TRANSLATED_SIZE and LAST_MOD_TIME for a versioned node.This function will record the information within the WORKING node, if present, or within the BASE tree. If neither node is present, then
SVNErrorCode.WC_PATH_NOT_FOUND
will be thrown.TRANSLATED_SIZE may be
ISVNWCDb.INVALID_FILESIZE
, which will be recorded as such, implying "unknown size".LAST_MOD_TIME may be 0, which will be recorded as such, implying "unknown last mod time".
- Specified by:
globalRecordFileinfo
in interfaceISVNWCDb
- Throws:
SVNException
-
installPristine
public void installPristine(java.io.File tempfileAbspath, SvnChecksum sha1Checksum, SvnChecksum md5Checksum) throws SVNException Description copied from interface:ISVNWCDb
Install the file TEMPFILE_ABSPATH (which is sitting in a directory given byISVNWCDb.getPristineTempDir(File)
) into the pristine data store, to be identified by the SHA-1 checksum of its contents, SHA1_CHECKSUM.### the md5_checksum parameter is temporary.
- Specified by:
installPristine
in interfaceISVNWCDb
- Throws:
SVNException
-
isNodeHidden
Description copied from interface:ISVNWCDb
Return TRUE if LOCAL_ABSPATH in DB "is not present, and I haven't scheduled something over the top of it."- Specified by:
isNodeHidden
in interfaceISVNWCDb
- Throws:
SVNException
-
parseDir
public SVNWCDb.DirParsedInfo parseDir(java.io.File localAbsPath, SVNSqlJetDb.Mode sMode) throws SVNException - Throws:
SVNException
-
parseDir
public SVNWCDb.DirParsedInfo parseDir(java.io.File localAbspath, SVNSqlJetDb.Mode sMode, boolean isDetectWCGeneration, boolean isAdditionMode) throws SVNException - Throws:
SVNException
-
getOldVersion
private int getOldVersion(java.io.File localAbsPath) -
readFormatVersion
- Throws:
SVNException
-
isWCLocked
- Specified by:
isWCLocked
in interfaceISVNWCDb
- Throws:
SVNException
-
isWCLocked
- Throws:
SVNException
-
isWCLocked
private boolean isWCLocked(SVNWCDbRoot root, java.io.File localRelpath, long recurseDepth) throws SVNException - Throws:
SVNException
-
getSDb
- Specified by:
getSDb
in interfaceISVNWCDb
- Throws:
SVNException
-
opAddDirectory
public void opAddDirectory(java.io.File localAbsPath, SVNProperties props, SVNSkel workItems) throws SVNException Description copied from interface:ISVNWCDb
Add a new versioned directory. A list of children is NOT passed since they are added in future, distinct calls to opAddDirectory(). Tthis is freshly added, so it has no properties.- Specified by:
opAddDirectory
in interfaceISVNWCDb
- Throws:
SVNException
-
opAddFile
public void opAddFile(java.io.File localAbsPath, SVNProperties props, SVNSkel workItems) throws SVNException Description copied from interface:ISVNWCDb
As a new file, there are no properties. This file has no "pristine" contents, so a checksum [reference] is not required.- Specified by:
opAddFile
in interfaceISVNWCDb
- Throws:
SVNException
-
opAddSymlink
public void opAddSymlink(java.io.File localAbsPath, java.io.File target, SVNProperties props, SVNSkel workItems) throws SVNException - Specified by:
opAddSymlink
in interfaceISVNWCDb
- Throws:
SVNException
-
opCopy
public void opCopy(java.io.File srcAbsPath, java.io.File dstAbsPath, java.io.File dstOpRootAbsPath, boolean isMove, SVNSkel workItems) throws SVNException Description copied from interface:ISVNWCDb
svn cp WCPATH WCPATH ... can copy mixed base/working around- Specified by:
opCopy
in interfaceISVNWCDb
- Throws:
SVNException
-
opCopyShadowedLayer
public void opCopyShadowedLayer(java.io.File srcAbsPath, java.io.File dstAbsPath, boolean isMove) throws SVNException - Specified by:
opCopyShadowedLayer
in interfaceISVNWCDb
- Throws:
SVNException
-
opCopyDir
public void opCopyDir(java.io.File localAbsPath, SVNProperties props, long changedRev, SVNDate changedDate, java.lang.String changedAuthor, java.io.File originalReposRelPath, SVNURL originalRootUrl, java.lang.String originalUuid, long originalRevision, java.util.List<java.io.File> children, boolean isMove, SVNDepth depth, SVNSkel conflict, SVNSkel workItems) throws SVNException Description copied from interface:ISVNWCDb
Record a copy at LOCAL_ABSPATH from a repository directory.This copy is NOT recursive. It simply establishes this one node. CHILDREN must be provided, and incomplete nodes will be constructed for them.
- Specified by:
opCopyDir
in interfaceISVNWCDb
- Throws:
SVNException
-
opCopyFile
public void opCopyFile(java.io.File localAbsPath, SVNProperties props, long changedRev, SVNDate changedDate, java.lang.String changedAuthor, java.io.File originalReposRelPath, SVNURL originalRootUrl, java.lang.String originalUuid, long originalRevision, SvnChecksum checksum, boolean updateActualProps, SVNProperties newActualProps, SVNSkel conflict, SVNSkel workItems) throws SVNException Description copied from interface:ISVNWCDb
Record a copy at LOCAL_ABSPATH from a repository file.- Specified by:
opCopyFile
in interfaceISVNWCDb
- Throws:
SVNException
-
opDelete
public void opDelete(java.io.File localAbsPath, java.io.File movedToAbsPath, boolean deleteDirExternals, SVNSkel conflict, SVNSkel workItems, ISVNEventHandler eventHandler) throws SVNException - Specified by:
opDelete
in interfaceISVNWCDb
- Throws:
SVNException
-
opMarkResolved
public void opMarkResolved(java.io.File localAbspath, boolean resolvedText, boolean resolvedProps, boolean resolvedTree, SVNSkel workItems) throws SVNException Description copied from interface:ISVNWCDb
caller maintains ACTUAL, and how the resolution occurred. we're just recording state.I'm not sure that these three values are the best way to do this, but they're handy for now.
- Specified by:
opMarkResolved
in interfaceISVNWCDb
- Throws:
SVNException
-
updateActualConflict17
private long updateActualConflict17(SVNWCDbRoot wcRoot, java.io.File localRelpath, SVNSkel conflicts, boolean resolvedAll) throws SVNException - Throws:
SVNException
-
opMarkConflict
public void opMarkConflict(java.io.File localAbspath, SVNSkel conflictSkel, SVNSkel workItems) throws SVNException - Specified by:
opMarkConflict
in interfaceISVNWCDb
- Throws:
SVNException
-
markConflictInternal
public void markConflictInternal(SVNWCDbRoot wcRoot, java.io.File localRelPath, SVNSkel conflictSkel) throws SVNException - Throws:
SVNException
-
markConflictInternal17
private void markConflictInternal17(SVNWCDbRoot wcRoot, java.io.File localRelPath, SVNSkel conflictSkel) throws SVNException - Throws:
SVNException
-
flushEntries
-
opReadAllTreeConflicts
public java.util.Map<java.lang.String,SVNTreeConflictDescription> opReadAllTreeConflicts(java.io.File localAbsPath) throws SVNException Description copied from interface:ISVNWCDb
Return all the children of localAbsPath that are in tree conflicts.- Specified by:
opReadAllTreeConflicts
in interfaceISVNWCDb
- Throws:
SVNException
-
readAllTreeConflicts
private java.util.Map<java.lang.String,SVNTreeConflictDescription> readAllTreeConflicts(SVNWCDbDir pdh, java.io.File localRelpath) throws SVNException - Throws:
SVNException
-
readAllTreeConflicts17
private java.util.Map<java.lang.String,SVNTreeConflictDescription> readAllTreeConflicts17(SVNWCDbDir pdh, java.io.File localRelpath) throws SVNException - Throws:
SVNException
-
opReadTreeConflict
Description copied from interface:ISVNWCDb
Get any tree conflict associated with localAbspath in DB.- Specified by:
opReadTreeConflict
in interfaceISVNWCDb
- Throws:
SVNException
-
opMakeCopy
public void opMakeCopy(java.io.File localAbspath, SVNSkel conflicts, SVNSkel workItems) throws SVNException - Throws:
SVNException
-
opRevert
- Specified by:
opRevert
in interfaceISVNWCDb
- Throws:
SVNException
-
opSetChangelist
public void opSetChangelist(java.io.File localAbspath, java.lang.String changelistName, java.lang.String[] changeLists, SVNDepth depth, ISVNEventHandler eventHandler) throws SVNException Description copied from interface:ISVNWCDb
use NULL to remove from a changelist.- Specified by:
opSetChangelist
in interfaceISVNWCDb
- Throws:
SVNException
-
opSetProps
public void opSetProps(java.io.File localAbsPath, SVNProperties props, SVNSkel conflict, boolean clearRecordedInfo, SVNSkel workItems) throws SVNException Description copied from interface:ISVNWCDb
Set the properties of the node LOCAL_ABSPATH in the ACTUAL tree to PROPS.To specify no properties, PROPS must be an empty hash, not NULL. If the node is not present, throw an error.
CONFLICT is used to register a conflict on this node at the same time the properties are changed.
WORK_ITEMS are inserted into the work queue, as additional things that need to be completed before the working copy is stable.
NOTE: This will overwrite ALL working properties the node currently has. There is no opSetProp() function. Callers must read all the properties, change one, and write all the properties.
NOTE: This will create an entry in the ACTUAL table for the node if it does not yet have one.
- Specified by:
opSetProps
in interfaceISVNWCDb
- Throws:
SVNException
-
setActualProperties
public void setActualProperties(SVNSqlJetDb db, long wcId, java.io.File localRelpath, SVNProperties props) throws SVNException - Throws:
SVNException
-
opSetTreeConflict
public void opSetTreeConflict(java.io.File localAbspath, SVNTreeConflictDescription treeConflict) throws SVNException Description copied from interface:ISVNWCDb
Set the tree conflict on LOCAL_ABSPATH in DB to TREE_CONFLICT. Use NULL to remove a tree conflict.- Specified by:
opSetTreeConflict
in interfaceISVNWCDb
- Throws:
SVNException
-
readChildren
Description copied from interface:ISVNWCDb
Return the basenames of the immediate children of LOCAL_ABSPATH in DB.- Specified by:
readChildren
in interfaceISVNWCDb
- Throws:
SVNException
-
getChildrenOfWorkingNode
public java.util.Set<java.lang.String> getChildrenOfWorkingNode(java.io.File localAbsPath) throws SVNException - Specified by:
getChildrenOfWorkingNode
in interfaceISVNWCDb
- Throws:
SVNException
-
readChildren
public void readChildren(java.io.File localAbsPath, java.util.Map<java.lang.String, ISVNWCDb.SVNWCDbInfo> children, java.util.Set<java.lang.String> conflicts) throws SVNException- Specified by:
readChildren
in interfaceISVNWCDb
- Throws:
SVNException
-
readChildren
public void readChildren(SVNWCDbRoot root, java.io.File localRelPath, java.util.Map<java.lang.String, ISVNWCDb.SVNWCDbInfo> children, java.util.Set<java.lang.String> conflicts) throws SVNException- Throws:
SVNException
-
gatherChildren
private java.util.Set<java.lang.String> gatherChildren(java.io.File localAbsPath, boolean baseOnly, boolean workOnly) throws SVNException - Throws:
SVNException
-
getBaseChildrenMap
public java.util.Map<java.lang.String,ISVNWCDb.WCDbBaseInfo> getBaseChildrenMap(java.io.File localAbsPath, boolean fetchLocks) throws SVNException - Specified by:
getBaseChildrenMap
in interfaceISVNWCDb
- Throws:
SVNException
-
getBaseChildrenMap
public java.util.Map<java.lang.String,ISVNWCDb.WCDbBaseInfo> getBaseChildrenMap(SVNWCDbRoot wcRoot, java.io.File localRelPath, boolean fetchLocks) throws SVNException - Specified by:
getBaseChildrenMap
in interfaceISVNWCDb
- Throws:
SVNException
-
addChildren
private void addChildren(java.util.Set<java.lang.String> children, SVNSqlJetStatement stmt) throws SVNException - Throws:
SVNException
-
readConflictVictims
public java.util.List<java.lang.String> readConflictVictims(java.io.File localAbsPath) throws SVNException Description copied from interface:ISVNWCDb
Return the basenames of the immediate children of LOCAL_ABSPATH in DB that are conflicted.In case of tree conflicts a victim doesn't have to be in the working copy.
This function will probably be removed.
- Specified by:
readConflictVictims
in interfaceISVNWCDb
- Throws:
SVNException
-
readConflicts
public java.util.List<SVNConflictDescription> readConflicts(java.io.File localAbsPath) throws SVNException Description copied from interface:ISVNWCDb
Return all conflicts that have LOCAL_ABSPATH as victim.Victim must be versioned or be part of a tree conflict.
Currently there can be just one property conflict recorded per victim
This function will probably be removed.
- Specified by:
readConflicts
in interfaceISVNWCDb
- Throws:
SVNException
-
readConflicts
public java.util.List<SVNWCConflictDescription17> readConflicts(java.io.File localAbsPath, boolean createTempFiles) throws SVNException - Throws:
SVNException
-
readConflicts17
private java.util.List<SVNWCConflictDescription17> readConflicts17(SVNWCDbRoot wcRoot, java.io.File localRelPath, boolean createTempFiles) throws SVNException - Throws:
SVNException
-
readConflict
- Specified by:
readConflict
in interfaceISVNWCDb
- Throws:
SVNException
-
readConflictInternal
public SVNSkel readConflictInternal(SVNWCDbRoot wcRoot, java.io.File localRelPath) throws SVNException - Throws:
SVNException
-
readConflictInternal17
private SVNSkel readConflictInternal17(SVNWCDbRoot wcRoot, java.io.File localRelPath) throws SVNException - Throws:
SVNException
-
readInfo
public ISVNWCDb.WCDbInfo readInfo(java.io.File localAbsPath, ISVNWCDb.WCDbInfo.InfoField... fields) throws SVNException Description copied from interface:ISVNWCDb
Retrieve information about a node.For the node implied by LOCAL_ABSPATH from the local filesystem, return information in the provided OUT parameters. Each OUT parameter may be NULL, indicating that specific item is not requested.
The information returned comes from the BASE tree, as possibly modified by the WORKING and ACTUAL trees.
If there is no information about the node, then
SVNErrorCode.WC_PATH_NOT_FOUND
will be returned.The OUT parameters, and their "not available" values are:
STATUS n/a (always available) KIND n/a (always available) REVISION SVN_INVALID_REVNUM REPOS_RELPATH NULL REPOS_ROOT_URL NULL REPOS_UUID NULL CHANGED_REV SVN_INVALID_REVNUM CHANGED_DATE 0 CHANGED_AUTHOR NULL LAST_MOD_TIME 0 DEPTH svn_depth_unknown CHECKSUM NULL TRANSLATED_SIZE SVN_INVALID_FILESIZE TARGET NULL CHANGELIST NULL ORIGINAL_REPOS_RELPATH NULL ORIGINAL_ROOT_URL NULL ORIGINAL_UUID NULL ORIGINAL_REVISION SVN_INVALID_REVNUM TEXT_MOD n/a (always available) PROPS_MOD n/a (always available) BASE_SHADOWED n/a (always available) CONFLICTED FALSE LOCK NULL When STATUS is requested, then it will be one of these values:
-
ISVNWCDb.SVNWCDbStatus.Normal
A plain BASE node, with no local changes.
-
ISVNWCDb.SVNWCDbStatus.Added
ISVNWCDb.SVNWCDbStatus.ObstructedAdd
A node has been added/copied/moved to here. See BASE_SHADOWED to see if this change overwrites a BASE node. Use scan_addition() to resolve whether this has been added, copied, or moved, and the details of the operation (this function only looks at LOCAL_ABSPATH, but resolving the details requires scanning one or more ancestor nodes).
-
ISVNWCDb.SVNWCDbStatus.Deleted
ISVNWCDb.SVNWCDbStatus.ObstructedDelete
This node has been deleted or moved away. It may be a delete/move of a BASE node, or a child node of a subtree that was copied/moved to an ancestor location. Call scan_deletion() to determine the full details of the operations upon this node.
-
ISVNWCDb.SVNWCDbStatus.Obstructed
The versioned subdirectory is missing or obstructed by a file.
-
SVNWCDbStatus#Absent
The node is versioned/known by the server, but the server has decided not to provide further information about the node. This is a BASE node (since changes are not allowed to this node).
-
ISVNWCDb.SVNWCDbStatus.Excluded
The node has been excluded from the working copy tree. This may be an exclusion from the BASE tree, or an exclusion for a child node of a copy/move to an ancestor (see BASE_SHADOWED to determine the situation).
-
SVNWCDbStatus#notPresent
This is a node from the BASE tree, has been marked as "not-present" within this mixed-revision working copy. This node is at a revision that is not in the tree, contrary to its inclusion in the parent node's revision.
-
ISVNWCDb.SVNWCDbStatus.Incomplete
The BASE or WORKING node is incomplete due to an interrupted operation.
If REVISION is requested, it will be set to the revision of the unmodified (BASE) node, or to -1 if any structural changes have been made to that node (that is, if the node has a row in the WORKING table).
If DEPTH is requested, and the node is NOT a directory, then the value will be set to
SVNDepth.UNKNOWN
.If CHECKSUM is requested, and the node is NOT a file, then it will be set to NULL.
If TRANSLATED_SIZE is requested, and the node is NOT a file, then it will be set to
ISVNWCDb.INVALID_FILESIZE
.If TARGET is requested, and the node is NOT a symlink, then it will be set to NULL.
- Specified by:
readInfo
in interfaceISVNWCDb
- Throws:
SVNException
readInfo
public Structure<StructureFields.NodeInfo> readInfo(java.io.File localAbsPath, StructureFields.NodeInfo... fields) throws SVNException - Specified by:
readInfo
in interfaceISVNWCDb
- Throws:
SVNException
readInfo
public Structure<StructureFields.NodeInfo> readInfo(java.io.File localAbsPath, boolean isAdditionMode, StructureFields.NodeInfo... fields) throws SVNException - Specified by:
readInfo
in interfaceISVNWCDb
- Throws:
SVNException
readOpDepth
- Throws:
SVNException
readInfoBelowWorking
- Specified by:
readInfoBelowWorking
in interfaceISVNWCDb
- Throws:
SVNException
readInfoBelowWorking
public ISVNWCDb.WCDbInfo readInfoBelowWorking(SVNWCDbRoot wcRoot, java.io.File localRelPath, int belowOpDepth) throws SVNException - Throws:
SVNException
readInfo
public ISVNWCDb.WCDbInfo readInfo(SVNWCDbRoot wcRoot, java.io.File localRelPath, ISVNWCDb.WCDbInfo.InfoField... fields) throws SVNException - Throws:
SVNException
getWorkingStatus
readKind
public ISVNWCDb.SVNWCDbKind readKind(java.io.File localAbsPath, boolean allowMissing) throws SVNException Description copied from interface:ISVNWCDb
Return the kind of the node in DB at LOCAL_ABSPATH. The WORKING tree will be examined first, then the BASE tree. If the node is not present in either tree and ALLOW_MISSING is TRUE, thenSVNWCDbKind#unknown
is returned. If the node is missing and ALLOW_MISSING is FALSE, then it will throwSVNErrorCode.WC_PATH_NOT_FOUND
.- Specified by:
readKind
in interfaceISVNWCDb
- Throws:
SVNException
readKind
public SVNNodeKind readKind(java.io.File localAbsPath, boolean allowMissing, boolean showDeleted, boolean showHidden) throws SVNException - Specified by:
readKind
in interfaceISVNWCDb
- Throws:
SVNException
convertToWorkingStatus
readPristine
public java.io.InputStream readPristine(java.io.File wcRootAbsPath, SvnChecksum checksum) throws SVNException Description copied from interface:ISVNWCDb
Get a readable stream that will yield the pristine text identified by CHECKSUM (### which should/must be its SHA-1 checksum?).- Specified by:
readPristine
in interfaceISVNWCDb
- Throws:
SVNException
readPristineProperties
Description copied from interface:ISVNWCDb
Return the properties of the node LOCAL_ABSPATH in the WORKING tree (looking through to the BASE tree as required).If the node has no properties, return an empty hash.
If the node is not present, throw an error.
- Specified by:
readPristineProperties
in interfaceISVNWCDb
- Throws:
SVNException
readPropertiesRecursively
public void readPropertiesRecursively(java.io.File localAbsPath, SVNDepth depth, boolean baseProperties, boolean pristineProperties, java.util.Collection<java.lang.String> changelists, ISvnObjectReceiver<SVNProperties> receiver) throws SVNException - Throws:
SVNException
readProperties
Description copied from interface:ISVNWCDb
Return the properties of the node LOCAL_ABSPATH in the ACTUAL tree (looking through to the WORKING or BASE tree as required).If the node has no properties, return an empty hash.
If the node is not present, throw an error.
- Specified by:
readProperties
in interfaceISVNWCDb
- Throws:
SVNException
getStatementForPath
private SVNSqlJetStatement getStatementForPath(java.io.File localAbsPath, SVNWCDbStatements statementIndex) throws SVNException - Throws:
SVNException
removeBase
Description copied from interface:ISVNWCDb
Remove a node from the BASE tree.The node to remove is indicated by LOCAL_ABSPATH from the local filesystem.
Note that no changes are made to the local filesystem; LOCAL_ABSPATH is merely the key to figure out which BASE node to remove.
If the node is a directory, then ALL child nodes will be removed from the BASE tree, too.
- Specified by:
removeBase
in interfaceISVNWCDb
- Throws:
SVNException
removeBase
public void removeBase(java.io.File localAbsPath, boolean keepAsWorking, boolean queueDeletes, boolean removeLocks, long notPresentRevision, SVNSkel conflict, SVNSkel workItems) throws SVNException - Specified by:
removeBase
in interfaceISVNWCDb
- Throws:
SVNException
removeLock
Description copied from interface:ISVNWCDb
Remove any lock for LOCAL_ABSPATH in DB.- Specified by:
removeLock
in interfaceISVNWCDb
- Throws:
SVNException
removePristine
Description copied from interface:ISVNWCDb
Remove the pristine text with SHA-1 checksum SHA1_CHECKSUM from the pristine store, if it is not referenced by any of the (other) WC DB tables.- Specified by:
removePristine
in interfaceISVNWCDb
- Throws:
SVNException
scanAddition
public ISVNWCDb.WCDbAdditionInfo scanAddition(java.io.File localAbsPath, ISVNWCDb.WCDbAdditionInfo.AdditionInfoField... fields) throws SVNException Description copied from interface:ISVNWCDb
Scan upwards for information about a known addition to the WORKING tree.If a node's status as returned by
ISVNWCDb.readInfo(File, InfoField...)
isISVNWCDb.SVNWCDbStatus.Added
(NOT obstructed_add!), then this function returns a refined status in STATUS, which is one of:-
ISVNWCDb.SVNWCDbStatus.Added
-- this NODE is a simple add without history. OP_ROOT_ABSPATH will be set to the topmost node in the added subtree (implying its parent will be an unshadowed BASE node). The REPOS_* values will be implied by that ancestor BASE node and this node's position in the added subtree. ORIGINAL_* will be set to their NULL values (and SVN_INVALID_REVNUM for ORIGINAL_REVISION). -
ISVNWCDb.SVNWCDbStatus.Copied
-- this NODE is the root or child of a copy. The root of the copy will be stored in OP_ROOT_ABSPATH. Note that the parent of the operation root could be another WORKING node (from an add, copy, or move). The REPOS_* values will be implied by the ancestor unshadowed BASE node. ORIGINAL_* will indicate the source of the copy. -
ISVNWCDb.SVNWCDbStatus.MovedHere
-- this NODE arrived as a result of a move. The root of the moved nodes will be stored in OP_ROOT_ABSPATH. Similar to the copied state, its parent may be a WORKING node or a BASE node. And again, the REPOS_* values are implied by this node's position in the subtree under the ancestor unshadowed BASE node. ORIGINAL_* will indicate the source of the move.
All OUT parameters may be NULL to indicate a lack of interest in that piece of information.
STATUS, OP_ROOT_ABSPATH, and REPOS_* will always be assigned a value if that information is requested (and assuming a successful return).
ORIGINAL_REPOS_RELPATH will refer to the root of the operation. It does not correspond to the node given by LOCAL_ABSPATH. The caller can use the suffix on LOCAL_ABSPATH (relative to OP_ROOT_ABSPATH) in order to compute the source node which corresponds to LOCAL_ABSPATH.
If the node given by LOCAL_ABSPATH does not have changes recorded in the WORKING tree, then
SVNErrorCode.WC_PATH_NOT_FOUND
is thrown. If it doesn't have an "added" status, thenSVNErrorCode.WC_PATH_UNEXPECTED_STATUS
will be thrown.- Specified by:
scanAddition
in interfaceISVNWCDb
- Throws:
SVNException
scanBaseRepository
public ISVNWCDb.WCDbRepositoryInfo scanBaseRepository(java.io.File localAbsPath, ISVNWCDb.WCDbRepositoryInfo.RepositoryInfoField... fields) throws SVNException Description copied from interface:ISVNWCDb
Scan for a BASE node's repository information.In the typical case, a BASE node has unspecified repository information, meaning that it is implied by its parent's information. When the info is needed, this function can be used to scan up the BASE tree to find the data.
For the BASE node implied by LOCAL_ABSPATH, its location in the repository returned in REPOS_ROOT_URL and REPOS_UUID will be returned in REPOS_RELPATH. Any of the OUT parameters may be NULL, indicating no interest in that piece of information.
- Specified by:
scanBaseRepository
in interfaceISVNWCDb
- Throws:
SVNException
scanUpwardsForRepos
private static long scanUpwardsForRepos(ISVNWCDb.WCDbRepositoryInfo reposInfo, SVNWCDbRoot wcroot, java.io.File localRelPath) throws SVNException Scan from LOCAL_RELPATH upwards through parent nodes until we find a parent that has values in the 'repos_id' and 'repos_relpath' columns. Return that information in REPOS_ID and REPOS_RELPATH (either may be NULL). Use LOCAL_ABSPATH for diagnostics- Throws:
SVNException
fetchReposInfo
private static void fetchReposInfo(ISVNWCDb.WCDbRepositoryInfo reposInfo, SVNSqlJetDb sdb, long reposId) throws SVNException - Throws:
SVNException
scanDeletion
public ISVNWCDb.WCDbDeletionInfo scanDeletion(java.io.File localAbsPath, ISVNWCDb.WCDbDeletionInfo.DeletionInfoField... fields) throws SVNException Description copied from interface:ISVNWCDb
Scan upwards for additional information about a deleted node.When a deleted node is discovered in the WORKING tree, the situation may be quite complex. This function will provide the information to resolve the circumstances of the deletion.
For discussion purposes, we will start with the most complex example and then demonstrate simplified examples. Consider node B/W/D/N has been found as deleted. B is an unmodified directory (thus, only in BASE). W is "replacement" content that exists in WORKING, shadowing a similar B/W directory in BASE. D is a deleted subtree in the WORKING tree, and N is the deleted node.
In this example, BASE_DEL_ABSPATH will bet set to B/W. That is the root of the BASE tree (implicitly) deleted by the replacement. BASE_REPLACED will be set to TRUE since B/W replaces the BASE node at B/W. WORK_DEL_ABSPATH will be set to the subtree deleted within the replacement; in this case, B/W/D. No move-away took place, so MOVED_TO_ABSPATH is set to NULL.
In another scenario, B/W was moved-away before W was put into the WORKING tree through an add/copy/move-here. MOVED_TO_ABSPATH will indicate where B/W was moved to. Note that further operations may have been performed post-move, but that is not known or reported by this function.
If BASE does not have a B/W, then the WORKING B/W is not a replacement, but a simple add/copy/move-here. BASE_DEL_ABSPATH will be set to NULL, and BASE_REPLACED will be set to FALSE.
If B/W/D does not exist in the WORKING tree (we're only talking about a deletion of nodes of the BASE tree), then deleting B/W/D would have marked the subtree for deletion. BASE_DEL_ABSPATH will refer to B/W/D, BASE_REPLACED will be FALSE, MOVED_TO_ABSPATH will be NULL, and WORK_DEL_ABSPATH will be NULL.
If the BASE node B/W/D was moved instead of deleted, then MOVED_TO_ABSPATH would indicate the target location (and other OUT values as above).
When the user deletes B/W/D from the WORKING tree, there are a few additional considerations. If B/W is a simple addition (not a copy or a move-here), then the deletion will simply remove the nodes from WORKING and possibly leave behind "base-delete" markers in the WORKING tree. If the source is a copy/moved-here, then the nodes are replaced with deletion markers.
If the user moves-away B/W/D from the WORKING tree, then behavior is again dependent upon the origination of B/W. For a plain add, the nodes simply move to the destination. For a copy, a deletion is made at B/W/D, and a new copy (of a subtree of the original source) is made at the destination. For a move-here, a deletion is made, and a copy is made at the destination (we do not track multiple moves; the source is moved to B/W, then B/W/D is deleted; then a copy is made at the destination; however, note the double-move could have been performed by moving the subtree first, then moving the source to B/W).
There are three further considerations when resolving a deleted node:
- If the BASE B/W/D was moved-away, then BASE_DEL_ABSPATH will specify B/W/D as the root of the BASE deletion (not necessarily B/W as an implicit delete caused by a replacement; only the closest ancestor is reported). The other parameters will operate as normal, based on what is happening in the WORKING tree. Also note that ancestors of B/W/D may report additional, explicit moved-away status.
- If the BASE B/W/D was deleted explicitly *and* B/W is a replacement, then the explicit deletion is subsumed by the implicit deletion that occurred with the B/W replacement. Thus, BASE_DEL_ABSPATH will point to B/W as the root of the BASE deletion. IOW, we can detect the explicit move-away, but not an explicit deletion.
- If B/W/D/N refers to a node present in the BASE tree, and B/W was replaced by a shallow subtree, then it is possible for N to be reported as deleted (from BASE) yet no deletions occurred in the WORKING tree above N. Thus, WORK_DEL_ABSPATH will be set to NULL.
Summary of OUT parameters:
- BASE_DEL_ABSPATH will specify the nearest ancestor of the explicit or implicit deletion (if any) that applies to the BASE tree.
- BASE_REPLACED will specify whether the node at BASE_DEL_ABSPATH has been replaced (shadowed) by nodes in the WORKING tree. If no BASE deletion has occurred (BASE_DEL_ABSPATH is NULL, meaning the deletion is confined to the WORKING TREE), then BASE_REPLACED will be FALSE.
- MOVED_TO_ABSPATH will specify the nearest ancestor that has moved-away, if any. If no ancestors have been moved-away, then this is set to NULL.
- WORK_DEL_ABSPATH will specify the root of a deleted subtree within the WORKING tree (note there is no concept of layered delete operations in WORKING, so there is only one deletion root in the ancestry).
All OUT parameters may be set to NULL to indicate a lack of interest in that piece of information.
If the node given by LOCAL_ABSPATH does not exist, then
SVNErrorCode.WC_PATH_NOT_FOUND
is returned. If it doesn't have a "deleted" status, thenSVNErrorCode.WC_PATH_UNEXPECTED_STATUS
will be returned.- Specified by:
scanDeletion
in interfaceISVNWCDb
- Throws:
SVNException
getMovedTo
public SVNWCDb.MovedTo getMovedTo(boolean scan, SVNWCDbSelectDeletionInfo stmt, java.io.File currentRelPath, SVNWCDbRoot wcRoot, java.io.File localRelPath) throws SVNException - Throws:
SVNException
setBaseDavCache
Description copied from interface:ISVNWCDb
Set the dav cache for LOCAL_ABSPATH to PROPS.- Specified by:
setBaseDavCache
in interfaceISVNWCDb
- Throws:
SVNException
toRelPath
public java.io.File toRelPath(java.io.File wriAbsPath, java.io.File localAbsPath) throws SVNException - Specified by:
toRelPath
in interfaceISVNWCDb
- Throws:
SVNException
toRelPath
Description copied from interface:ISVNWCDb
Compute the LOCAL_RELPATH for the given LOCAL_ABSPATH.The LOCAL_RELPATH is a relative path to the working copy's root. That root will be located by this function, and the path will be relative to that location. If LOCAL_ABSPATH is the wcroot directory, then "" will be returned.
The LOCAL_RELPATH should ONLY be used for persisting paths to disk. Those patsh should not be an abspath, otherwise the working copy cannot be moved. The working copy library should not make these paths visible in its API (which should all be abspaths), and it should not be using relpaths for other processing.
note: with per-dir .svn directories, these relpaths will effectively be the basename. it gets interesting in single-db mode
- Specified by:
toRelPath
in interfaceISVNWCDb
- Throws:
SVNException
getFileExternalTemp
Description copied from interface:ISVNWCDb
Return the serialized file external info (from BASE) for LOCAL_ABSPATH. Stores NULL into SERIALIZED_FILE_EXTERNAL if this node is NOT a file external. If a BASE node does not exist: SVN_ERR_WC_PATH_NOT_FOUND.- Specified by:
getFileExternalTemp
in interfaceISVNWCDb
- Throws:
SVNException
cleanupPristine
Description copied from interface:ISVNWCDb
Remove all unreferenced pristines belonging to WRI_ABSPATH in DB.- Specified by:
cleanupPristine
in interfaceISVNWCDb
- Throws:
SVNException
fetchWCId
- Throws:
SVNException
fetchReposInfo
- Throws:
SVNException
fetchRepositoryInfo
public Structure<StructureFields.RepositoryInfo> fetchRepositoryInfo(SVNSqlJetDb sDb, long repos_id) throws SVNException - Throws:
SVNException
openDb
private static SVNSqlJetDb openDb(java.io.File dirAbsPath, java.lang.String sdbFileName, SVNSqlJetDb.Mode sMode, org.tmatesoft.sqljet.core.internal.SqlJetPagerJournalMode journalMode, boolean temporaryDbInMemory) throws SVNException - Throws:
SVNException
verifyDirUsable
- Throws:
SVNException
borrowDbTemp
public SVNSqlJetDb borrowDbTemp(java.io.File localDirAbsPath, ISVNWCDb.SVNWCDbOpenMode mode) throws SVNException - Specified by:
borrowDbTemp
in interfaceISVNWCDb
- Throws:
SVNException
isWCRoot
- Specified by:
isWCRoot
in interfaceISVNWCDb
- Throws:
SVNException
isWCRoot
- Specified by:
isWCRoot
in interfaceISVNWCDb
- Throws:
SVNException
opStartDirectoryUpdateTemp
public void opStartDirectoryUpdateTemp(java.io.File localAbspath, java.io.File newReposRelpath, long newRevision) throws SVNException - Specified by:
opStartDirectoryUpdateTemp
in interfaceISVNWCDb
- Throws:
SVNException
opMakeCopyTemp
- Specified by:
opMakeCopyTemp
in interfaceISVNWCDb
- Throws:
SVNException
catchCopyOfAbsent
- Throws:
SVNException
catchCopyOfServerExcluded
private void catchCopyOfServerExcluded(SVNWCDbRoot wcRoot, java.io.File localRelpath) throws SVNException - Throws:
SVNException
gatherRepoChildren
public java.util.List<java.lang.String> gatherRepoChildren(SVNWCDbRoot root, java.io.File localRelpath, long opDepth) throws SVNException - Throws:
SVNException
fetchReposId
public long fetchReposId(SVNSqlJetDb db, SVNURL reposRootUrl, java.lang.String reposUuid) throws SVNException - Throws:
SVNException
opSetNewDirToIncompleteTemp
public void opSetNewDirToIncompleteTemp(java.io.File localAbspath, java.io.File reposRelpath, SVNURL reposRootURL, java.lang.String reposUuid, long revision, SVNDepth depth, boolean insertBaseDeleted, boolean deleteWorking, SVNSkel conflict, SVNSkel workItems) throws SVNException - Specified by:
opSetNewDirToIncompleteTemp
in interfaceISVNWCDb
- Throws:
SVNException
opBumpRevisionPostUpdate
public void opBumpRevisionPostUpdate(java.io.File localAbsPath, SVNDepth depth, java.io.File newReposRelPath, SVNURL newReposRootURL, java.lang.String newReposUUID, long newRevision, java.util.Collection<java.io.File> excludedPaths, java.util.Map<java.io.File, java.util.Map<java.lang.String, throws SVNExceptionSVNProperties>> inheritableProperties, ISVNEventHandler eventHandler) - Specified by:
opBumpRevisionPostUpdate
in interfaceISVNWCDb
- Throws:
SVNException
getWCRootTempDir
- Specified by:
getWCRootTempDir
in interfaceISVNWCDb
- Throws:
SVNException
opRemoveWorkingTemp
- Specified by:
opRemoveWorkingTemp
in interfaceISVNWCDb
- Throws:
SVNException
opSetBaseIncompleteTemp
public void opSetBaseIncompleteTemp(java.io.File localDirAbspath, boolean incomplete) throws SVNException - Specified by:
opSetBaseIncompleteTemp
in interfaceISVNWCDb
- Throws:
SVNException
getOrCreateDir
opSetDirDepthTemp
- Specified by:
opSetDirDepthTemp
in interfaceISVNWCDb
- Throws:
SVNException
updateDepthValues
private void updateDepthValues(java.io.File localAbspath, SVNWCDbDir pdh, java.io.File localRelpath, SVNDepth depth) throws SVNException - Throws:
SVNException
opRemoveEntryTemp
- Specified by:
opRemoveEntryTemp
in interfaceISVNWCDb
- Throws:
SVNException
opSetRevAndReposRelpathTemp
public void opSetRevAndReposRelpathTemp(java.io.File localAbspath, long revision, boolean setReposRelpath, java.io.File reposRelpath, SVNURL reposRootUrl, java.lang.String reposUuid) throws SVNException - Specified by:
opSetRevAndReposRelpathTemp
in interfaceISVNWCDb
- Throws:
SVNException
opSetRevAndReposRelpath
private void opSetRevAndReposRelpath(SVNWCDbRoot wcRoot, java.io.File localRelpath, java.util.Map<java.lang.String, SVNProperties> nodeIprops, long revision, boolean setReposRelpath, java.io.File reposRelpath, SVNURL reposRootUrl, java.lang.String reposUuid) throws SVNException- Throws:
SVNException
obtainWCLock
public void obtainWCLock(java.io.File localAbspath, int levelsToLock, boolean stealLock) throws SVNException - Specified by:
obtainWCLock
in interfaceISVNWCDb
- Throws:
SVNException
stealWCLock
- Throws:
SVNException
releaseWCLock
- Specified by:
releaseWCLock
in interfaceISVNWCDb
- Throws:
SVNException
getWCRoot
- Specified by:
getWCRoot
in interfaceISVNWCDb
- Throws:
SVNException
forgetDirectoryTemp
- Specified by:
forgetDirectoryTemp
in interfaceISVNWCDb
- Throws:
SVNException
isWCLockOwns
- Specified by:
isWCLockOwns
in interfaceISVNWCDb
- Throws:
SVNException
opSetTextConflictMarkerFilesTemp
public void opSetTextConflictMarkerFilesTemp(java.io.File localAbspath, java.io.File oldBasename, java.io.File newBasename, java.io.File wrkBasename) throws SVNException - Specified by:
opSetTextConflictMarkerFilesTemp
in interfaceISVNWCDb
- Throws:
SVNException
addBaseNotPresentNode
public void addBaseNotPresentNode(java.io.File localAbspath, java.io.File reposRelPath, SVNURL reposRootUrl, java.lang.String reposUuid, long revision, ISVNWCDb.SVNWCDbKind kind, SVNSkel conflict, SVNSkel workItems) throws SVNException - Specified by:
addBaseNotPresentNode
in interfaceISVNWCDb
- Throws:
SVNException
opSetPropertyConflictMarkerFileTemp
public void opSetPropertyConflictMarkerFileTemp(java.io.File localAbspath, java.lang.String prejBasename) throws SVNException - Specified by:
opSetPropertyConflictMarkerFileTemp
in interfaceISVNWCDb
- Throws:
SVNException
addExcludedOrNotPresentNode
private void addExcludedOrNotPresentNode(java.io.File localAbspath, java.io.File reposRelpath, SVNURL reposRootUrl, java.lang.String reposUuid, long revision, ISVNWCDb.SVNWCDbKind kind, ISVNWCDb.SVNWCDbStatus status, SVNSkel conflict, SVNSkel workItems) throws SVNException - Throws:
SVNException
globalCommit
public void globalCommit(java.io.File localAbspath, long newRevision, long changedRevision, SVNDate changedDate, java.lang.String changedAuthor, SvnChecksum newChecksum, java.util.List<java.io.File> newChildren, SVNProperties newDavCache, boolean keepChangelist, boolean noUnlock, SVNSkel workItems) throws SVNException Description copied from interface:ISVNWCDb
Collapse the WORKING and ACTUAL tree changes down into BASE, called for each committed node.NEW_REVISION must be the revision number of the revision created by the commit. It will become the BASE node's 'revnum' and 'changed_rev' values in the BASE_NODE table.
NEW_DATE is the (server-side) date of the new revision. It may be 0 if the revprop is missing on the revision.
NEW_AUTHOR is the (server-side) author of the new revision. It may be NULL if the revprop is missing on the revision.
One or both of NEW_CHECKSUM and NEW_CHILDREN should be NULL. For new:
- files: NEW_CHILDREN should be NULL
- dirs: NEW_CHECKSUM should be NULL
- symlinks: both should be NULL
WORK_ITEMS will be place into the work queue.
- Specified by:
globalCommit
in interfaceISVNWCDb
- Throws:
SVNException
determineReposInfo
private SVNWCDb.ReposInfo2 determineReposInfo(SVNWCDbDir pdh, java.io.File localRelpath) throws SVNException - Throws:
SVNException
readPristineInfo
public Structure<StructureFields.PristineInfo> readPristineInfo(java.io.File localAbspath) throws SVNException - Specified by:
readPristineInfo
in interfaceISVNWCDb
- Throws:
SVNException
obtainWcRoot
- Throws:
SVNException
obtainWcRoot
public SVNWCDb.DirParsedInfo obtainWcRoot(java.io.File localAbspath, boolean isAdditionMode) throws SVNException - Throws:
SVNException
registerExternal
public void registerExternal(java.io.File definingAbsPath, java.io.File localAbsPath, SVNNodeKind kind, SVNURL reposRootUrl, java.lang.String reposUuid, java.io.File reposRelPath, long operationalRevision, long revision) throws SVNException - Specified by:
registerExternal
in interfaceISVNWCDb
- Throws:
SVNException
opRemoveNode
public void opRemoveNode(java.io.File localAbspath, long notPresentRevision, ISVNWCDb.SVNWCDbKind notPresentKind) throws SVNException - Specified by:
opRemoveNode
in interfaceISVNWCDb
- Throws:
SVNException
upgradeBegin
public void upgradeBegin(java.io.File localAbspath, ISVNWCDb.SVNWCDbUpgradeData upgradeData, SVNURL repositoryRootUrl, java.lang.String repositoryUUID, int targetWorkingCopyFormat) throws SVNException - Specified by:
upgradeBegin
in interfaceISVNWCDb
- Throws:
SVNException
nodeCheckReplace
public ISVNWCDb.SVNWCDbNodeCheckReplaceData nodeCheckReplace(java.io.File localAbspath) throws SVNException - Specified by:
nodeCheckReplace
in interfaceISVNWCDb
- Throws:
SVNException
baseMovedTo
- Specified by:
baseMovedTo
in interfaceISVNWCDb
- Throws:
SVNException
readNodeInstallInfo
public ISVNWCDb.NodeInstallInfo readNodeInstallInfo(java.io.File localAbsPath, java.io.File wriAbsPath) throws SVNException - Specified by:
readNodeInstallInfo
in interfaceISVNWCDb
- Throws:
SVNException
resolveBreakMovedAway
public void resolveBreakMovedAway(java.io.File localAbsPath, ISVNEventHandler eventHandler) throws SVNException - Specified by:
resolveBreakMovedAway
in interfaceISVNWCDb
- Throws:
SVNException
opDepthMovedTo
public SVNWCDb.BaseMovedTo opDepthMovedTo(long opDepth, SVNWCDbRoot wcRoot, java.io.File localRelPath) throws SVNException - Throws:
SVNException
resolveDeleteRaiseMovedAway
public void resolveDeleteRaiseMovedAway(java.io.File localAbsPath, ISVNEventHandler eventHandler) throws SVNException - Specified by:
resolveDeleteRaiseMovedAway
in interfaceISVNWCDb
- Throws:
SVNException
markTreeConflict
private void markTreeConflict(java.io.File localRelPath, SVNWCDbRoot wcRoot, SVNConflictVersion oldVersion, SVNConflictVersion newVersion, java.io.File moveRootDstRelPath, SVNOperation operation, SVNNodeKind oldKind, SVNNodeKind newKind, java.io.File oldReposRelPath, SVNConflictReason reason, SVNConflictAction action, java.io.File moveSrcOpRootRelPath) throws SVNException - Throws:
SVNException
updateMoveListNotify
public void updateMoveListNotify(SVNWCDbRoot wcRoot, long oldRevision, long newRevision, ISVNEventHandler eventHandler) throws SVNException - Throws:
SVNException
getTcInfo
- Throws:
SVNException
updateMoveListAdd
public static void updateMoveListAdd(SVNWCDbRoot wcRoot, java.io.File localRelPath, SVNEventAction eventAction, SVNNodeKind kind, SVNStatusType contentState, SVNStatusType propState) throws SVNException - Throws:
SVNException
updateMovedAwayConflictVictim
public void updateMovedAwayConflictVictim(java.io.File victimAbsPath, ISVNEventHandler eventHandler) throws SVNException - Specified by:
updateMovedAwayConflictVictim
in interfaceISVNWCDb
- Throws:
SVNException
driveTreeConflictEditor
private void driveTreeConflictEditor(SVNTreeConflictEditor treeConflictEditor, java.io.File srcRelPath, java.io.File dstRelPath, int srcOpDepth, SVNOperation operation, SVNConflictReason localChange, SVNConflictAction incomingChange, SVNConflictVersion oldVersion, SVNConflictVersion newVersion, SVNWCDbRoot wcRoot) throws SVNException - Throws:
SVNException
updateMovedAwayNode
private void updateMovedAwayNode(SVNTreeConflictEditor treeConflictEditor, java.io.File srcRelPath, java.io.File dstRelPath, int srcOpDepth, java.io.File moveRootDstRelPath, long moveRootDstRevision, SVNWCDbRoot wcRoot) throws SVNException - Throws:
SVNException
propsMatch
childrenMatch
private boolean childrenMatch(java.util.List<java.lang.String> srcChildren, java.util.List<java.lang.String> dstChildren) replaceMovedLayer
private void replaceMovedLayer(SVNWCDbRoot wcRoot, java.io.File srcRelPath, java.io.File dstRelPath, int srcOpDepth) throws SVNException - Throws:
SVNException
getInfo
private SVNWCDb.UpdateMovedAwayNodeInfo getInfo(SVNWCDbRoot wcRoot, java.io.File localRelPath, int opDepth) throws SVNException - Throws:
SVNException
suitableForMove
- Throws:
SVNException
wqAdd
- Throws:
SVNException
getChildrenOpDepth
public java.util.Map<java.lang.String,ISVNWCDb.SVNWCDbKind> getChildrenOpDepth(SVNWCDbRoot wcRoot, java.io.File localRelPath, int opDepth) throws SVNException - Throws:
SVNException
isSwitched
- Specified by:
isSwitched
in interfaceISVNWCDb
- Throws:
SVNException
getConflictMarkerFiles
public java.util.List<java.io.File> getConflictMarkerFiles(java.io.File localAbsPath) throws SVNException - Specified by:
getConflictMarkerFiles
in interfaceISVNWCDb
- Throws:
SVNException
minMaxRevisions
- Specified by:
minMaxRevisions
in interfaceISVNWCDb
- Throws:
SVNException
getMinMaxRevisions
private long[] getMinMaxRevisions(SVNWCDbRoot wcRoot, java.io.File localRelPath, boolean committed) throws SVNException - Throws:
SVNException
opHandleMoveBack
public boolean opHandleMoveBack(java.io.File localAbsPath, java.io.File movedFromAbsPath, SVNSkel workItems) throws SVNException - Specified by:
opHandleMoveBack
in interfaceISVNWCDb
- Throws:
SVNException
opDepthOf
- Throws:
SVNException
requiredLockForResolve
- Specified by:
requiredLockForResolve
in interfaceISVNWCDb
- Throws:
SVNException
getNodeLockTokensRecursive
public java.util.Map<SVNURL,java.lang.String> getNodeLockTokensRecursive(java.io.File localAbsPath) throws SVNException - Specified by:
getNodeLockTokensRecursive
in interfaceISVNWCDb
- Throws:
SVNException
committableExternalsBelow
public java.util.List<SVNWCContext.CommittableExternalInfo> committableExternalsBelow(java.io.File localAbsPath, boolean immediatesOnly) throws SVNException - Specified by:
committableExternalsBelow
in interfaceISVNWCDb
- Throws:
SVNException
scanMoved
- Specified by:
scanMoved
in interfaceISVNWCDb
- Throws:
SVNException
dropRoot
- Specified by:
dropRoot
in interfaceISVNWCDb
- Throws:
SVNException
upgradeInsertExternal
public void upgradeInsertExternal(java.io.File localAbsPath, SVNNodeKind kind, java.io.File parentAbsPath, java.io.File defLocalAbsPath, java.io.File reposRelPath, SVNURL reposRootUrl, java.lang.String reposUuid, long defPegRevision, long defRevision) throws SVNException - Specified by:
upgradeInsertExternal
in interfaceISVNWCDb
- Throws:
SVNException
-
-