public interface ISVNWCDb
Has those next categories of routines:
BASE should be what we get from the server. The *absolute* pristine copy. Nothing can change it -- it is always a reflection of the repository. You need to use checkout, update, switch, or commit to alter your view of the repository.
These functions query information about nodes in ACTUAL, and returns the requested information from the appropriate ACTUAL, WORKING, or BASE tree.
For example, asking for the checksum of the pristine version will return the one recorded in WORKING, or if no WORKING node exists, then the checksum comes from BASE.
Modifier and Type | Interface and Description |
---|---|
static class |
ISVNWCDb.Moved |
static class |
ISVNWCDb.NodeInstallInfo |
static class |
ISVNWCDb.SVNWCDbBaseMovedToData |
static class |
ISVNWCDb.SVNWCDbInfo |
static class |
ISVNWCDb.SVNWCDbKind
Enum indicating what kind of versioned object we're talking about.
|
static class |
ISVNWCDb.SVNWCDbLock
Lock information.
|
static class |
ISVNWCDb.SVNWCDbNodeCheckReplaceData |
static class |
ISVNWCDb.SVNWCDbOpenMode
Enumerated constants for how to open a WC datastore.
|
static class |
ISVNWCDb.SVNWCDbStatus
Enumerated values describing the state of a node.
|
static class |
ISVNWCDb.SVNWCDbUpgradeData |
static class |
ISVNWCDb.SwitchedInfo |
static class |
ISVNWCDb.WCDbAdditionInfo |
static class |
ISVNWCDb.WCDbBaseInfo |
static class |
ISVNWCDb.WCDbDeletionInfo |
static class |
ISVNWCDb.WCDbInfo |
static class |
ISVNWCDb.WCDbRepositoryInfo |
static class |
ISVNWCDb.WCDbWorkQueueInfo |
Modifier and Type | Field and Description |
---|---|
static long |
INVALID_FILESIZE |
static long |
INVALID_REVNUM |
static java.lang.String |
PRISTINE_STORAGE_RELPATH |
static java.lang.String |
PRISTINE_TEMPDIR_RELPATH |
static java.lang.String |
SDB_FILE |
static java.lang.String |
SDB_FILE_UPGRADE |
static int |
WC_FORMAT_17 |
static int |
WC_FORMAT_18 |
static int |
WC_HAS_WORK_QUEUE |
static java.lang.String |
WCROOT_TEMPDIR_RELPATH |
Modifier and Type | Method and Description |
---|---|
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)
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.
|
void |
addLock(java.io.File localAbsPath,
ISVNWCDb.SVNWCDbLock lock)
Add or replace LOCK for LOCAL_ABSPATH to DB.
|
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.
|
ISVNWCDb.SVNWCDbBaseMovedToData |
baseMovedTo(java.io.File localAbsPath) |
SVNSqlJetDb |
borrowDbTemp(java.io.File dirAbsPath,
ISVNWCDb.SVNWCDbOpenMode mode) |
boolean |
checkPristine(java.io.File wcRootAbsPath,
SvnChecksum checksum)
Check for presence, according to the given mode (on how hard we should
examine things)
|
void |
cleanupPristine(java.io.File wcRootAbsPath)
Remove all unreferenced pristines belonging to WRI_ABSPATH in DB.
|
void |
clearDavCacheRecursive(java.io.File localAbsPath) |
void |
close()
Close DB.
|
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.
|
void |
dropRoot(java.io.File localAbsPath) |
ISVNWCDb.WCDbWorkQueueInfo |
fetchWorkQueue(java.io.File wcRootAbsPath)
In the WCROOT associated with DB and WRI_ABSPATH, fetch a work item that
needs to be completed.
|
void |
forgetDirectoryTemp(java.io.File dirAbspath) |
java.io.File |
fromRelPath(java.io.File wcRootAbsPath,
java.io.File localRelPath)
Compute the local abs path for a localRelPath located within the working
copy identified by wcRootAbsPath.
|
void |
gatherExternalDefinitions(java.io.File localAbsPath,
SVNExternalsStore externals) |
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 root,
java.io.File localRelPath,
boolean fetchLocks) |
SVNProperties |
getBaseDavCache(java.io.File localAbsPath)
Retrieve the dav cache for LOCAL_ABSPATH.
|
ISVNWCDb.WCDbBaseInfo |
getBaseInfo(java.io.File localAbsPath,
ISVNWCDb.WCDbBaseInfo.BaseInfoField... fields)
Retrieve information about a node in the BASE tree.
|
SVNProperties |
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 dirAbsPath) |
ISVNOptions |
getConfig() |
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.
|
java.util.Map<SVNURL,java.lang.String> |
getNodeLockTokensRecursive(java.io.File localAbsPath) |
SvnChecksum |
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.
|
SvnChecksum |
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.
|
SVNSqlJetDb |
getSDb(java.io.File dirAbsPath) |
java.io.File |
getWCRoot(java.io.File dirAbspath) |
java.io.File |
getWCRootTempDir(java.io.File localAbspath) |
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 local_abspath,
long translated_size,
SVNDate last_mod_time)
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 |
installPristine(java.io.File tempfileAbspath,
SvnChecksum sha1Checksum,
SvnChecksum md5Checksum)
Install the file TEMPFILE_ABSPATH (which is sitting in a directory given
by
getPristineTempDir(File) ) into the pristine data store, to be
identified by the SHA-1 checksum of its contents, SHA1_CHECKSUM. |
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."
|
ISVNWCDb.SwitchedInfo |
isSwitched(java.io.File localAbsPath) |
boolean |
isWCLocked(java.io.File localAbspath) |
boolean |
isWCLockOwns(java.io.File localAbspath,
boolean exact) |
boolean |
isWCRoot(java.io.File localAbspath) |
boolean |
isWCRoot(java.io.File localAbspath,
boolean isAdditionMode) |
long[] |
minMaxRevisions(java.io.File localAbsPath,
boolean committed) |
ISVNWCDb.SVNWCDbNodeCheckReplaceData |
nodeCheckReplace(java.io.File localAbspath) |
void |
obtainWCLock(java.io.File localAbspath,
int i,
boolean b) |
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 handler) |
void |
open(ISVNWCDb.SVNWCDbOpenMode mode,
ISVNOptions config,
boolean autoUpgrade,
boolean enforceEmptyWQ)
Open a working copy administrative database context.
|
boolean |
opHandleMoveBack(java.io.File localAbsPath,
java.io.File movedFromAbsPath,
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.
|
SVNTreeConflictDescription |
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 revision,
ISVNWCDb.SVNWCDbKind kind) |
void |
opRemoveWorkingTemp(java.io.File localAbspath) |
void |
opRevert(java.io.File localAbspath,
SVNDepth depth) |
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 handler)
use NULL to remove from a changelist.
|
void |
opSetDirDepthTemp(java.io.File localAbspath,
SVNDepth requestedDepth) |
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.
|
void |
opSetRevAndReposRelpathTemp(java.io.File localAbspath,
long newRevision,
boolean setReposRelpath,
java.io.File newReposRelpath,
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 newRelpath,
long targetRevision) |
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) |
SVNSkel |
readConflict(java.io.File localAbsPath) |
java.util.List<SVNConflictDescription> |
readConflicts(java.io.File localAbsPath)
Return all conflicts that have LOCAL_ABSPATH as victim.
|
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.
|
Structure<StructureFields.NodeInfo> |
readInfo(java.io.File localAbsPath,
boolean isAdditionMode,
StructureFields.NodeInfo... fields) |
ISVNWCDb.WCDbInfo |
readInfo(java.io.File localAbsPath,
ISVNWCDb.WCDbInfo.InfoField... fields)
Retrieve information about a node.
|
Structure<StructureFields.NodeInfo> |
readInfo(java.io.File localAbsPath,
StructureFields.NodeInfo... fields) |
ISVNWCDb.WCDbInfo |
readInfoBelowWorking(java.io.File localAbsPath) |
ISVNWCDb.SVNWCDbKind |
readKind(java.io.File localAbsPath,
boolean allowMissing)
Return the kind of the node in DB at LOCAL_ABSPATH.
|
SVNNodeKind |
readKind(java.io.File localAbsPath,
boolean allowMissing,
boolean showDeleted,
boolean showHidden) |
ISVNWCDb.NodeInstallInfo |
readNodeInstallInfo(java.io.File localAbsPath,
java.io.File wriAbsPath) |
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?).
|
Structure<StructureFields.PristineInfo> |
readPristineInfo(java.io.File localAbspath) |
SVNProperties |
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).
|
SVNProperties |
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 |
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.
|
java.io.File |
requiredLockForResolve(java.io.File localAbsPath) |
void |
resolveBreakMovedAway(java.io.File localAbsPath,
ISVNEventHandler eventHandler) |
void |
resolveDeleteRaiseMovedAway(java.io.File localAbsPath,
ISVNEventHandler eventHandler) |
ISVNWCDb.WCDbAdditionInfo |
scanAddition(java.io.File localAbsPath,
ISVNWCDb.WCDbAdditionInfo.AdditionInfoField... fields)
Scan upwards for information about a known addition to the WORKING tree.
|
ISVNWCDb.WCDbRepositoryInfo |
scanBaseRepository(java.io.File localAbsPath,
ISVNWCDb.WCDbRepositoryInfo.RepositoryInfoField... fields)
Scan for a BASE node's repository information.
|
ISVNWCDb.WCDbDeletionInfo |
scanDeletion(java.io.File localAbsPath,
ISVNWCDb.WCDbDeletionInfo.DeletionInfoField... fields)
Scan upwards for additional information about a deleted node.
|
ISVNWCDb.Moved |
scanMoved(java.io.File localAbsPath) |
void |
setBaseDavCache(java.io.File localAbsPath,
SVNProperties props)
Set the dav cache for LOCAL_ABSPATH to PROPS.
|
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) |
void |
updateMovedAwayConflictVictim(java.io.File victimAbsPath,
ISVNEventHandler eventHandler) |
void |
upgradeBegin(java.io.File localAbspath,
ISVNWCDb.SVNWCDbUpgradeData upgradeData,
SVNURL repositoryRootUrl,
java.lang.String repositoryUUID) |
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) |
static final int WC_FORMAT_17
static final int WC_FORMAT_18
static final int WC_HAS_WORK_QUEUE
static final long INVALID_FILESIZE
static final long INVALID_REVNUM
static final java.lang.String SDB_FILE
static final java.lang.String SDB_FILE_UPGRADE
static final java.lang.String PRISTINE_STORAGE_RELPATH
static final java.lang.String PRISTINE_TEMPDIR_RELPATH
static final java.lang.String WCROOT_TEMPDIR_RELPATH
void open(ISVNWCDb.SVNWCDbOpenMode mode, ISVNOptions config, boolean autoUpgrade, boolean enforceEmptyWQ)
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 close()
. In particular, this
will close any SQLite databases that have been opened and cached.
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 a ISVNWCDb
API). If it is
detected that a manual upgrade is required, then
SVNErrorCode.WC_UPGRADE_REQUIRED
will be thrown from
that API. Passing false will allow a bare minimum of
APIs to function (most notably, the
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 raise SVNErrorCode.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.void close()
ISVNOptions getConfig()
void init(java.io.File localAbsPath, java.io.File reposRelPath, SVNURL reposRootUrl, java.lang.String reposUuid, long initialRev, SVNDepth depth, int workingCopyFormat) throws SVNException
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.
org.tmatesoft.sqljet.core.SqlJetException
SVNException
java.io.File toRelPath(java.io.File localAbsPath) throws SVNException
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
SVNException
java.io.File toRelPath(java.io.File wriAbsPath, java.io.File localAbsPath) throws SVNException
SVNException
java.io.File fromRelPath(java.io.File wcRootAbsPath, java.io.File localRelPath) throws SVNException
This is the reverse of toRelPath(File)
. It should be used for
returning a persisted relpath back into an abspath.
SVNException
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 SVNException
The directory is located at LOCAL_ABSPATH on the local filesystem, and
corresponds to
The directory properties are given by the PROPS.
The last-change information is given by
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.
SVNException
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 SVNException
The file is located at LOCAL_ABSPATH on the local filesystem, and
corresponds to
The file properties are given by the PROPS.
The last-change information is given by
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
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.INVALID_FILESIZE
.
svnProperties
- SVNException
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
The symlink is located at LOCAL_ABSPATH on the local filesystem, and
corresponds to
The symlink's properties are given by the PROPS.
The last-change information is given by
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.
SVNException
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
The new node will be located at LOCAL_ABSPATH, and correspond to the
repository node described by
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:
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.
SVNWCDbStatus#Absent
ISVNWCDb.SVNWCDbStatus.Excluded
ISVNWCDb.SVNWCDbStatus.NotPresent
SVNException
void removeBase(java.io.File localAbsPath) throws SVNException
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.
SVNException
void removeBase(java.io.File localAbsPath, boolean keepAsWorking, boolean queueDeletes, boolean removeLocks, long notPresentRevision, SVNSkel conflict, SVNSkel workItems) throws SVNException
SVNException
ISVNWCDb.WCDbBaseInfo getBaseInfo(java.io.File localAbsPath, ISVNWCDb.WCDbBaseInfo.BaseInfoField... fields) throws SVNException
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 | INVALID_FILESIZE |
TARGET | NULL |
LOCK | NULL |
If the STATUS is normal, and the REPOS_* values are NULL, then the caller
should use #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 INVALID_FILESIZE
.
If TARGET is requested, and the node is NOT a symlink, then it will be set to NULL.
SVNException
SVNProperties getBaseProps(java.io.File localAbsPath) throws SVNException
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.
SVNException
java.util.Set<java.lang.String> getBaseChildren(java.io.File localAbsPath) throws SVNException
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.
SVNException
java.util.Map<java.lang.String,ISVNWCDb.WCDbBaseInfo> getBaseChildrenMap(java.io.File localAbsPath, boolean fetchLocks) throws SVNException
SVNException
java.util.Map<java.lang.String,ISVNWCDb.WCDbBaseInfo> getBaseChildrenMap(SVNWCDbRoot root, java.io.File localRelPath, boolean fetchLocks) throws SVNException
SVNException
void setBaseDavCache(java.io.File localAbsPath, SVNProperties props) throws SVNException
SVNException
SVNProperties getBaseDavCache(java.io.File localAbsPath) throws SVNException
SVNErrorCode.WC_PATH_NOT_FOUND
if no dav cache can be located for
LOCAL_ABSPATH in DB.SVNException
void clearDavCacheRecursive(java.io.File localAbsPath) throws SVNException
SVNException
java.io.File getPristinePath(java.io.File wcRootAbsPath, SvnChecksum checksum) throws SVNException
### This is temporary - callers should not be looking at the file directly.
SVNException
java.io.InputStream readPristine(java.io.File wcRootAbsPath, SvnChecksum checksum) throws SVNException
SVNException
java.io.File getPristineTempDir(java.io.File wcRootAbsPath) throws SVNException
The directory is guaranteed to be one that
installPristine(File, SvnChecksum, SvnChecksum)
can use:
specifically, one from which it can atomically move the file.
SVNException
void installPristine(java.io.File tempfileAbspath, SvnChecksum sha1Checksum, SvnChecksum md5Checksum) throws SVNException
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.
SVNException
SvnChecksum getPristineMD5(java.io.File wcRootAbsPath, SvnChecksum sha1Checksum) throws SVNException
SVNException
SvnChecksum getPristineSHA1(java.io.File wcRootAbsPath, SvnChecksum md5Checksum) throws SVNException
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.
SVNException
void removePristine(java.io.File wcRootAbsPath, SvnChecksum checksum) throws SVNException
SVNException
void cleanupPristine(java.io.File wcRootAbsPath) throws SVNException
SVNException
boolean checkPristine(java.io.File wcRootAbsPath, SvnChecksum checksum) throws SVNException
SVNException
void opCopy(java.io.File srcAbsPath, java.io.File dstAbsPath, java.io.File dstOpRootAbsPath, boolean isMove, SVNSkel workItems) throws SVNException
SVNException
void opCopyShadowedLayer(java.io.File srcAbsPath, java.io.File dstAbsPath, boolean isMove) throws SVNException
SVNException
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
This copy is NOT recursive. It simply establishes this one node. CHILDREN must be provided, and incomplete nodes will be constructed for them.
SVNException
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
SVNException
void opAddDirectory(java.io.File localAbsPath, SVNProperties props, SVNSkel workItems) throws SVNException
SVNException
void opAddFile(java.io.File localAbsPath, SVNProperties props, SVNSkel workItems) throws SVNException
SVNException
void opAddSymlink(java.io.File localAbsPath, java.io.File target, SVNProperties props, SVNSkel workItems) throws SVNException
SVNException
void opSetProps(java.io.File localAbsPath, SVNProperties props, SVNSkel conflict, boolean clearRecordedInfo, SVNSkel workItems) throws SVNException
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.
SVNException
void opDelete(java.io.File localAbsPath, java.io.File movedToAbsPath, boolean deleteDirExternals, SVNSkel conflict, SVNSkel workItems, ISVNEventHandler handler) throws SVNException
SVNException
void opSetChangelist(java.io.File localAbsPath, java.lang.String changelistName, java.lang.String[] changeLists, SVNDepth depth, ISVNEventHandler handler) throws SVNException
SVNException
void opMarkResolved(java.io.File localAbspath, boolean resolvedText, boolean resolvedProps, boolean resolvedTree, SVNSkel workItems) throws SVNException
I'm not sure that these three values are the best way to do this, but they're handy for now.
SVNException
void opMarkConflict(java.io.File localAbspath, SVNSkel conflictSkel, SVNSkel workItems) throws SVNException
SVNException
void opRevert(java.io.File localAbspath, SVNDepth depth) throws SVNException
SVNException
java.util.Map<java.lang.String,SVNTreeConflictDescription> opReadAllTreeConflicts(java.io.File localAbsPath) throws SVNException
SVNException
SVNTreeConflictDescription opReadTreeConflict(java.io.File localAbspath) throws SVNException
SVNException
void opSetTreeConflict(java.io.File localAbspath, SVNTreeConflictDescription treeConflict) throws SVNException
SVNException
ISVNWCDb.WCDbInfo readInfo(java.io.File localAbsPath, ISVNWCDb.WCDbInfo.InfoField... fields) throws SVNException
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 |