Class DAVRepository
- Version:
- 1.3
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate DAVConnection
private IHTTPConnectionFactory
private boolean
private boolean
private java.io.File
private static boolean
private static boolean
Fields inherited from class org.tmatesoft.svn.core.io.SVNRepository
INVALID_REVISION, myLocation, myRepositoryRoot, myRepositoryUUID
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
DAVRepository
(IHTTPConnectionFactory connectionFactory, SVNURL location, ISVNSession options) -
Method Summary
Modifier and TypeMethodDescriptioncheckPath
(java.lang.String path, long revision) Returns the kind of an item located at the specified path in a particular revision.protected void
void
Closes the current session closing a socket connection used by this object.protected DAVConnection
createDAVConnection
(IHTTPConnectionFactory connectionFactory, DAVRepository repo) private SVNDirEntry
createDirEntry
(java.lang.String fullPath, DAVProperties child) void
diff
(SVNURL url, long targetRevision, long revision, java.lang.String target, boolean ignoreAncestry, SVNDepth depth, boolean getContents, ISVNReporterBaton reporter, ISVNEditor editor) Asks this repository access object to 'diff' a working copy againsttargetRevision
.java.lang.String
doGetFullPath
(java.lang.String relativeOrRepositoryPath) private java.util.Map
doGetMergeInfo
(java.lang.String[] paths, long revision, SVNMergeInfoInheritance inherit, boolean includeDescendants) protected java.lang.String
doGetRepositoryPath
(java.lang.String relativePath) getCommitEditor
(java.lang.String logMessage, java.util.Map locks, boolean keepLocks, ISVNWorkspaceMediator mediator) Gets an editor for committing changes to a repository.protected ISVNEditor
getCommitEditorInternal
(java.util.Map locks, boolean keepLocks, SVNProperties revProps, ISVNWorkspaceMediator mediator) protected DAVConnection
protected IHTTPConnectionFactory
long
getDatedRevision
(java.util.Date date) Returns the recent repository revision number for the particular moment in time - the closest one before or at the specified datestamp.protected long
getDeletedRevisionImpl
(java.lang.String path, long pegRevision, long endRevision) getDir
(java.lang.String path, long revision, boolean includeComments, java.util.Collection entries) Fetches the contents of a directory into the provided collection object and returns the directory entry itself.long
getDir
(java.lang.String path, long revision, SVNProperties properties, int entryFields, ISVNDirEntryHandler handler) Fetches the contents and/or properties of a directory located at the specified path in a particular revision with the possibility to specify fields of the entry to fetch.long
getDir
(java.lang.String path, long revision, SVNProperties properties, ISVNDirEntryHandler handler) Fetches the contents and/or properties of a directory located at the specified path in a particular revision.long
getFile
(java.lang.String path, long revision, SVNProperties properties, java.io.OutputStream contents) Fetches the contents and/or properties of a file located at the specified path in a particular revision.long
getFile
(java.lang.String path, long revision, SVNProperties properties, java.io.OutputStream contents, ISVNWorkingCopyContentMediator workingCopyContentMediator) protected int
getFileRevisionsImpl
(java.lang.String path, long startRevision, long endRevision, boolean includeMergedRevisions, ISVNFileRevisionHandler handler) protected void
getInheritedPropertiesImpl
(java.lang.String path, long revision, java.lang.String propertyName, ISVNInheritedPropertiesHandler handler) long
Returns the number of the latest revision of the repository this driver is working with.protected long
getLocationSegmentsImpl
(java.lang.String path, long pegRevision, long startRevision, long endRevision, ISVNLocationSegmentHandler handler) protected int
getLocationsImpl
(java.lang.String path, long pegRevision, long[] revisions, ISVNLocationEntryHandler handler) getLock
(java.lang.String path) Gets the lock for the file located at the specified path.SVNLock[]
getLocks
(java.lang.String path) Gets all locks on or below thepath
, that is if the repository entry (located at thepath
) is a directory then the method returns locks of all locked files (if any) in it.protected java.util.Map
getMergeInfoImpl
(java.lang.String[] paths, long revision, SVNMergeInfoInheritance inherit, boolean includeDescendants) getRepositoryRoot
(boolean forceConnection) Gets a repository's root directory location.java.lang.String
getRepositoryUUID
(boolean forceConnection) Gets the Universal Unique IDentifier (UUID) of the repository this driver is created for.getRevisionProperties
(long revision, SVNProperties properties) Returns unversioned revision properties for a particular revision.getRevisionPropertyValue
(long revision, java.lang.String propertyName) Gets the value of an unversioned property.java.io.File
boolean
hasCapability
(SVNCapability capability) Returnstrue
if the repository has specifiedcapability
.boolean
boolean
info
(java.lang.String path, long revision) Gives information about an entry located at the specified path in a particular revision.boolean
boolean
void
lock
(java.util.Map pathsToRevisions, java.lang.String comment, boolean force, ISVNLockHandler handler) Locks path(s) at definite revision(s).protected long
logImpl
(java.lang.String[] targetPaths, long startRevision, long endRevision, boolean changedPath, boolean strictNode, long limit, boolean includeMergedRevisions, java.lang.String[] revPropNames, ISVNLogEntryHandler handler) protected void
void
replay
(long lowRevision, long highRevision, boolean sendDeltas, ISVNEditor editor) Replays the changes from the specified revision through the given editor.protected void
replayRangeImpl
(long startRevision, long endRevision, long lowRevision, boolean sendDeltas, ISVNReplayHandler handler) private void
runReport
(SVNURL url, long targetRevision, java.lang.String target, java.lang.String dstPath, SVNDepth depth, boolean ignoreAncestry, boolean resourceWalk, boolean fetchContents, boolean sendCopyFromArgs, boolean sendAll, boolean closeEditorOnException, boolean spool, ISVNWorkingCopyContentMediator workingCopyContentMediator, ISVNReporterBaton reporter, ISVNEditor editor) void
setAuthenticationManager
(ISVNAuthenticationManager authManager) Sets an authentication driver for this object.void
setHttpV2Enabled
(boolean httpV2Enabled) static void
setKeepCredentials
(boolean keepCredentials) void
setRepositoryRoot
(SVNURL root) void
setRepositoryUUID
(java.lang.String uuid) void
setRevisionPropertyValue
(long revision, java.lang.String propertyName, SVNPropertyValue propertyValue) Sets a revision property with the specified name to a new value.void
setSpoolLocation
(java.io.File spoolLocation) void
setSpoolResponse
(boolean spool) void
status
(long revision, java.lang.String target, SVNDepth depth, ISVNReporterBaton reporter, ISVNEditor editor) Gets status of a path to the particulardepth
as a scope.void
Tries to access a repository.void
unlock
(java.util.Map pathToTokens, boolean force, ISVNLockHandler handler) Removes lock(s) from the file(s).void
update
(long revision, java.lang.String target, SVNDepth depth, boolean sendCopyFromArgs, ISVNReporterBaton reporter, ISVNEditor editor) Updates a path receiving changes from a repository.void
update
(SVNURL url, long revision, java.lang.String target, SVNDepth depth, ISVNReporterBaton reporter, ISVNEditor editor) Asks this repository access object to 'switch' a versioned tree to a newurl
.Methods inherited from class org.tmatesoft.svn.core.io.SVNRepository
addConnectionListener, assertServerIsMergeInfoCapable, assertValidRevision, checkout, checkout, checkoutFiles, diff, diff, diff, fireConnectionClosed, fireConnectionOpened, getAuthenticationManager, getCanceller, getCommitEditor, getCommitEditor, getDebugLog, getDeletedRevision, getDir, getDir, getFileRevisions, getFileRevisions, getFileRevisions, getFullPath, getInheritedProperties, getInheritedProperties, getLocation, getLocationRelativePath, getLocations, getLocations, getLocations, getLocationSegments, getLocationSegments, getMergeInfo, getOptions, getRepositoryPath, getRepositoryRoot, getRepositoryUUID, getRevisionObject, getTunnelProvider, isInvalidRevision, isValidRevision, lock, lock, log, log, log, log, removeConnectionListener, replayRange, setCanceller, setDebugLog, setLocation, setRepositoryCredentials, setTunnelProvider, status, unlock, update, update
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
myConnection
-
myConnectionFactory
-
myIsSpoolResponse
private boolean myIsSpoolResponse -
myHttpV2Enabled
private boolean myHttpV2Enabled -
ourIsKeepCredentials
private static boolean ourIsKeepCredentials -
ourHttpV2Enabled
private static boolean ourHttpV2Enabled -
mySpoolLocation
private java.io.File mySpoolLocation
-
-
Constructor Details
-
DAVRepository
protected DAVRepository(IHTTPConnectionFactory connectionFactory, SVNURL location, ISVNSession options)
-
-
Method Details
-
setKeepCredentials
public static void setKeepCredentials(boolean keepCredentials) -
setSpoolLocation
public void setSpoolLocation(java.io.File spoolLocation) -
getSpoolLocation
public java.io.File getSpoolLocation() -
testConnection
Description copied from class:SVNRepository
Tries to access a repository. Used to check if there're no problems with accessing a repository and to cache a repository UUID and root directory location.- Specified by:
testConnection
in classSVNRepository
- Throws:
SVNException
- if a failure occured while connecting to a repository or the user's authentication failed (seeSVNAuthenticationException
)
-
hasRepositoryUUID
public boolean hasRepositoryUUID() -
setRepositoryUUID
public void setRepositoryUUID(java.lang.String uuid) -
hasRepositoryRoot
public boolean hasRepositoryRoot() -
setRepositoryRoot
-
getRepositoryRoot
Description copied from class:SVNRepository
Gets a repository's root directory location. If this driver object is switched to a different repository location during runtime (probably to an absolutely different repository, seesetLocation()
), the root directory location may be changed. This method may need to establish connection with the repository if the information on the repository's root location has not been received yet from the repository.- Overrides:
getRepositoryRoot
in classSVNRepository
- Parameters:
forceConnection
- if true then forces this driver to test a connection - try to access a repository- Returns:
- the repository root directory location url
- Throws:
SVNException
- in case the repository could not be connectedSVNAuthenticationException
- in case of authentication problems- See Also:
-
getRepositoryUUID
Description copied from class:SVNRepository
Gets the Universal Unique IDentifier (UUID) of the repository this driver is created for.- Overrides:
getRepositoryUUID
in classSVNRepository
- Parameters:
forceConnection
- if true then forces this driver to test a connection - try to access a repository- Returns:
- the UUID of a repository
- Throws:
SVNException
- in case the repository could not be connectedSVNAuthenticationException
- in case of authentication problems
-
setSpoolResponse
public void setSpoolResponse(boolean spool) -
isSpoolResponse
public boolean isSpoolResponse() -
isHttpV2Enabled
public boolean isHttpV2Enabled() -
setHttpV2Enabled
public void setHttpV2Enabled(boolean httpV2Enabled) -
setAuthenticationManager
Description copied from class:SVNRepository
Sets an authentication driver for this object. The auth driver may be implemented to retrieve cached credentials, to prompt a user for credentials or something else (actually, this is up to an implementor). Also there's a default implementation - see theSVNWCUtil
class for more details.- Overrides:
setAuthenticationManager
in classSVNRepository
- Parameters:
authManager
- an authentication driver to provide user credentials- See Also:
-
getLatestRevision
Description copied from class:SVNRepository
Returns the number of the latest revision of the repository this driver is working with.- Specified by:
getLatestRevision
in classSVNRepository
- Returns:
- the latest revision number
- Throws:
SVNException
- if a failure occured while connecting to a repository or the user's authentication failed (seeSVNAuthenticationException
)
-
getDatedRevision
Description copied from class:SVNRepository
Returns the recent repository revision number for the particular moment in time - the closest one before or at the specified datestamp.Example: if you specify a single date without specifying a time of the day (e.g. 2002-11-27) the timestamp is assumed to 00:00:00 and the method won't return any revisions for the day you have specified but for the day just before it.
- Specified by:
getDatedRevision
in classSVNRepository
- Parameters:
date
- a datestamp for defining the needed moment in time- Returns:
- the revision of the repository for that time
- Throws:
SVNException
- if a failure occured while connecting to a repository or the user's authentication failed (seeSVNAuthenticationException
)
-
checkPath
Description copied from class:SVNRepository
Returns the kind of an item located at the specified path in a particular revision. If thepath
does not exist under the specifiedrevision
,SVNNodeKind.NONE
will be returned.The
path
arg can be both relative to the location of this driver and absolute to the repository root (starts with"/"
).- Specified by:
checkPath
in classSVNRepository
- Parameters:
path
- an item's pathrevision
- a revision number- Returns:
- the node kind for the given
path
at the givenrevision
- Throws:
SVNException
- if a failure occured while connecting to a repository or the user's authentication failed (seeSVNAuthenticationException
)
-
getRevisionProperties
public SVNProperties getRevisionProperties(long revision, SVNProperties properties) throws SVNException Description copied from class:SVNRepository
Returns unversioned revision properties for a particular revision. Property names (keys) are mapped to their values. You may use SVNRevisionProperty constants to retrieve property values from the map.- Specified by:
getRevisionProperties
in classSVNRepository
- Parameters:
revision
- a revision numberproperties
- if not null then properties will be placed in this map, otherwise a new map will be created- Returns:
- a map containing unversioned revision properties
- Throws:
SVNException
- in the following cases:revision
number is invalid- there's no such
revision
at all - a failure occured while connecting to a repository
- the user authentication failed
(see
SVNAuthenticationException
)
- See Also:
-
getRevisionPropertyValue
public SVNPropertyValue getRevisionPropertyValue(long revision, java.lang.String propertyName) throws SVNException Description copied from class:SVNRepository
Gets the value of an unversioned property.- Specified by:
getRevisionPropertyValue
in classSVNRepository
- Parameters:
revision
- a revision numberpropertyName
- a property name- Returns:
- a revision property value or null if there's no such revision property
- Throws:
SVNException
- in the following cases:revision
number is invalid or if there's no suchrevision
at all.- a failure occured while connecting to a repository
- the user authentication failed
(see
SVNAuthenticationException
)
-
getFile
public long getFile(java.lang.String path, long revision, SVNProperties properties, java.io.OutputStream contents) throws SVNException Description copied from class:SVNRepository
Fetches the contents and/or properties of a file located at the specified path in a particular revision.If
contents
arg is not null it will be written with file contents.If
properties
arg is not null it will receive the properties of the file. This includes all properties: not just ones controlled by a user and stored in the repository filesystem, but also non-tweakable ones (e.g. 'wcprops', 'entryprops', etc.). Property names (keys) are mapped to property values.The
path
arg can be both relative to the location of this driver and absolute to the repository root (starts with"/"
).If
revision
is invalid (negative), HEAD revision will be used.- Specified by:
getFile
in classSVNRepository
- Parameters:
path
- a file pathrevision
- a file revisionproperties
- a file properties receiver mapcontents
- an output stream to write the file contents to- Returns:
- the revision the file has been taken at
- Throws:
SVNException
- in the following cases:- there's no such
path
inrevision
- a failure occured while connecting to a repository
- the user authentication failed
(see
SVNAuthenticationException
)
- there's no such
-
getFile
public long getFile(java.lang.String path, long revision, SVNProperties properties, java.io.OutputStream contents, ISVNWorkingCopyContentMediator workingCopyContentMediator) throws SVNException - Throws:
SVNException
-
getDir
public long getDir(java.lang.String path, long revision, SVNProperties properties, ISVNDirEntryHandler handler) throws SVNException Description copied from class:SVNRepository
Fetches the contents and/or properties of a directory located at the specified path in a particular revision.This method is the same as
SVNRepository.getDir(String, long, SVNProperties, int, ISVNDirEntryHandler)
withentryFields
parameter set toDIRENT_ALL
.- Specified by:
getDir
in classSVNRepository
- Parameters:
path
- a directory pathrevision
- a directory revisionproperties
- a directory properties receiver maphandler
- a handler to process directory entries- Returns:
- the revision of the directory
- Throws:
SVNException
- in the following cases:path
not found in the specifiedrevision
path
is not a directory- a failure occured while connecting to a repository
- the user authentication failed
(see
SVNAuthenticationException
)
- See Also:
-
getDir
public long getDir(java.lang.String path, long revision, SVNProperties properties, int entryFields, ISVNDirEntryHandler handler) throws SVNException Description copied from class:SVNRepository
Fetches the contents and/or properties of a directory located at the specified path in a particular revision with the possibility to specify fields of the entry to fetch.If
handler
arg is not null it will be dispatched information of each directory entry represented by an SVNDirEntry object.If
properties
arg is not null it will receive the properties of the file. This includes all properties: not just ones controlled by a user and stored in the repository filesystem, but also non-tweakable ones (e.g. 'wcprops', 'entryprops', etc.). Property names (keys) are mapped to property values.The
path
arg can be both relative to the location of this driver and absolute to the repository root (starts with"/"
).If
revision
is invalid (negative), HEAD revision will be used. NOTE: you may not invoke operation methods of this SVNRepository object from within the providedhandler
.- Specified by:
getDir
in classSVNRepository
- Parameters:
path
- a directory pathrevision
- a directory revisionproperties
- a directory properties receiver mapentryFields
- a combination of fields for the entryhandler
- a handler to process directory entries- Returns:
- the revision of the directory
- Throws:
SVNException
- in the following cases:path
not found in the specifiedrevision
path
is not a directory- a failure occured while connecting to a repository
- the user authentication failed
(see
SVNAuthenticationException
)
- See Also:
-
getDir
public SVNDirEntry getDir(java.lang.String path, long revision, boolean includeComments, java.util.Collection entries) throws SVNException Description copied from class:SVNRepository
Fetches the contents of a directory into the provided collection object and returns the directory entry itself.If
entries
arg is not null it receives the directory entries. Information of each directory entry is represented by an SVNDirEntry object.The
path
arg can be both relative to the location of this driver and absolute to the repository root (starts with"/"
).- Specified by:
getDir
in classSVNRepository
- Parameters:
path
- a directory pathrevision
- a revision numberincludeComments
- if true then dir entries (SVNDirEntry objects) will be supplied with commit log messages, otherwise notentries
- a collection that receives fetched dir entries- Returns:
- the directory entry itself which contents
are fetched into
entries
- Throws:
SVNException
- in the following cases:path
not found in the specifiedrevision
path
is not a directory- a failure occured while connecting to a repository
- the user authentication failed
(see
SVNAuthenticationException
)
- See Also:
-
replay
public void replay(long lowRevision, long highRevision, boolean sendDeltas, ISVNEditor editor) throws SVNException Description copied from class:SVNRepository
Replays the changes from the specified revision through the given editor.Changes will be limited to those that occur under a session's URL, and the server will assume that the client has no knowledge of revisions prior to a
lowRevision
. These two limiting factors define the portion of the tree that the server will assume the client already has knowledge of, and thus any copies of data from outside that part of the tree will be sent in their entirety, not as simple copies or deltas against a previous version.If
sendDeltas
is true, the actual text and property changes in the revision will be sent, otherwise no text deltas and null property changes will be sent instead.If
lowRevision
is invalid, it defaults to 0.- Specified by:
replay
in classSVNRepository
- Parameters:
lowRevision
- a low revision point beyond which a client has no knowledge of paths historyhighRevision
- a revision to replaysendDeltas
- controls whether text and property changes are to be senteditor
- a commit editor to receive changes- Throws:
SVNException
- in case the repository could not be connectedSVNAuthenticationException
- in case of authentication problems
-
setRevisionPropertyValue
public void setRevisionPropertyValue(long revision, java.lang.String propertyName, SVNPropertyValue propertyValue) throws SVNException Description copied from class:SVNRepository
Sets a revision property with the specified name to a new value.NOTE: revision properties are not versioned. So, the old values may be lost forever.
- Specified by:
setRevisionPropertyValue
in classSVNRepository
- Parameters:
revision
- the number of the revision which property is to be changedpropertyName
- a revision property namepropertyValue
- the value of the revision property- Throws:
SVNException
- in the following cases:- the repository is configured not to allow clients to modify revision properties (e.g. a pre-revprop-change-hook program is not found or failed)
revision
is invalid or doesn't exist at all- a failure occured while connecting to a repository
- the user authentication failed
(see
SVNAuthenticationException
)
- See Also:
-
getCommitEditor
public ISVNEditor getCommitEditor(java.lang.String logMessage, java.util.Map locks, boolean keepLocks, ISVNWorkspaceMediator mediator) throws SVNException Description copied from class:SVNRepository
Gets an editor for committing changes to a repository. Having got the editor traverse a local tree of dirs and/or files to be committed, handling them with corresponding methods of the editor.locks
is a map used to provide lock tokens on the locked paths. Keys are locked paths in a local tree, and each value for a key is a lock token.locks
must live during the whole commit operation.If
keepLocks
is true, then the locked paths won't be unlocked after a successful commit. Otherwise, if false, locks will be automatically released.mediator
is used for temporary delta data storage allocations.The root path of the commit is the current repository location to which this object is set.
After the commit has succeeded
ISVNEditor.closeEdit()
returns an SVNCommitInfo object that contains a new revision number, the commit date, commit author.NOTE: you may not invoke methods of this SVNRepository object from within the returned commit editor.
- Specified by:
getCommitEditor
in classSVNRepository
- Parameters:
logMessage
- a commit log messagelocks
- a map containing locked paths mapped to lock tokenskeepLocks
- true to keep existing locks; false to release locks after the commitmediator
- temp delta storage provider; used also to cache wcprops while committing- Returns:
- an editor to commit a local tree of dirs and/or files
- Throws:
SVNException
- in the following cases:- the repository location this object is set to is not a directory
- a failure occured while connecting to a repository
- the user authentication failed
(see
SVNAuthenticationException
)
- See Also:
-
getLock
Description copied from class:SVNRepository
Gets the lock for the file located at the specified path. If the file has no lock the method returns null.The
path
arg can be both relative to the location of this driver and absolute to the repository root (starts with"/"
).- Specified by:
getLock
in classSVNRepository
- Parameters:
path
- a file path- Returns:
- an SVNLock instance (representing the lock) or null if there's no lock
- Throws:
SVNException
- in the following cases:- a failure occured while connecting to a repository
- the user authentication failed
(see
SVNAuthenticationException
)
- See Also:
-
getLocks
Description copied from class:SVNRepository
Gets all locks on or below thepath
, that is if the repository entry (located at thepath
) is a directory then the method returns locks of all locked files (if any) in it.The
path
arg can be both relative to the location of this driver and absolute to the repository root (starts with"/"
).- Specified by:
getLocks
in classSVNRepository
- Parameters:
path
- a path under which locks are to be retrieved- Returns:
- an array of SVNLock objects (representing locks)
- Throws:
SVNException
- in the following cases:- a failure occured while connecting to a repository
- the user authentication failed
(see
SVNAuthenticationException
)
- See Also:
-
lock
public void lock(java.util.Map pathsToRevisions, java.lang.String comment, boolean force, ISVNLockHandler handler) throws SVNException Description copied from class:SVNRepository
Locks path(s) at definite revision(s).Note that locking is never anonymous, so any server implementing this function will have to "pull" a username from the client, if it hasn't done so already.
Each path to be locked is handled with the provided
handler
. If a path was successfully locked, thehandler
'shandleLock()
is called that receives the path and either a lock object (representing the lock that was set on the path) or an error exception, if locking failed for that path.If any path is already locked by a different user and the
force
flag is false, then this call fails with throwing an SVNException. But ifforce
is true, then the existing lock(s) will be "stolen" anyway, even if the user name does not match the current lock's owner.Paths can be both relative to the location of this driver and absolute to the repository root (starting with
"/"
).- Specified by:
lock
in classSVNRepository
- Parameters:
pathsToRevisions
- a map which keys are paths and values are revision numbers (as Longs); paths are strings and revision numbers are Long objectscomment
- a comment string for the lock (optional)force
- true if the file is to be locked in any way (even if it's already locked by someone else)handler
- if not null, the lock handler is invoked on each path to be locked- Throws:
SVNException
- in the following cases:force
is false and a path is already locked by someone else- a revision of a path is less than its last changed revision
- a path does not exist in the latest revision
- a failure occured while connecting to a repository
- the user authentication failed
(see
SVNAuthenticationException
)
- See Also:
-
unlock
public void unlock(java.util.Map pathToTokens, boolean force, ISVNLockHandler handler) throws SVNException Description copied from class:SVNRepository
Removes lock(s) from the file(s).Note that unlocking is never anonymous, so any server implementing this function will have to "pull" a username from the client, if it hasn't done so already.
Each path to be unlocked is handled with the provided
handler
. If a path was successfully unlocked, thehandler
'shandleUnlock()
is called that receives the path and either a lock object (representing the lock that was removed from the path) or an error exception, if unlocking failed for that path.If the username doesn't match the lock's owner and
force
is false, this method call fails with throwing an SVNException. But if theforce
flag is true, the lock will be "broken" by the current user.Also if the lock token is incorrect or null and
force
is false, the method fails with throwing a SVNException. However, ifforce
is true the lock will be removed anyway.Paths can be both relative to the location of this driver and absolute to the repository root (starting with
"/"
).- Specified by:
unlock
in classSVNRepository
- Parameters:
pathToTokens
- a map which keys are file paths and values are file lock tokens (both keys and values are strings)force
- true to remove the lock in any case - i.e. to "break" the lockhandler
- if not null, the lock handler is invoked on each path to be unlocked- Throws:
SVNException
- in the following cases:force
is false and the name of the user who tries to unlock a path does not match the lock owner- a lock token is incorrect for a path
- a failure occurred while connecting to a repository
- the user authentication failed
(see
SVNAuthenticationException
)
- See Also:
-
info
Description copied from class:SVNRepository
Gives information about an entry located at the specified path in a particular revision.The
path
arg can be both relative to the location of this driver and absolute to the repository root (starts with"/"
).- Specified by:
info
in classSVNRepository
- Parameters:
path
- an item's pathrevision
- a revision of the entry; defaults to the latest revision (HEAD)- Returns:
- an SVNDirEntry containing information about
the entry or null if
there's no entry with at the specified
path
under the specifiedrevision
- Throws:
SVNException
- in the following cases:- a failure occured while connecting to a repository
- the user authentication failed
(see
SVNAuthenticationException
)
-
closeSession
public void closeSession()Description copied from class:SVNRepository
Closes the current session closing a socket connection used by this object. If this driver object keeps a single connection for all the data i/o, this method helps to reset the connection.- Specified by:
closeSession
in classSVNRepository
-
doGetFullPath
public java.lang.String doGetFullPath(java.lang.String relativeOrRepositoryPath) throws SVNException - Throws:
SVNException
-
diff
public void diff(SVNURL url, long targetRevision, long revision, java.lang.String target, boolean ignoreAncestry, SVNDepth depth, boolean getContents, ISVNReporterBaton reporter, ISVNEditor editor) throws SVNException Description copied from class:SVNRepository
Asks this repository access object to 'diff' a working copy againsttargetRevision
. Note: this method cannot be used to diff a single file, only a directory. See theSVNRepository.update(SVNURL, long, String, SVNDepth, ISVNReporterBaton, ISVNEditor)
method for more details. The client initially provides aneditor
; this editor contains knowledge of where the common diff root is in the working copy (whenISVNEditor.openRoot(long)
is called). In return, the client receives aISVNReporter
object in hisISVNReporterBaton
implementation. The client then describes its working copy by making calls into the reporter object. When finished, the client callsISVNReporter.finishReport()
. ThisSVNRepository
object then does a complete drive ofeditor
, ending withISVNEditor.closeEdit()
, to transmit the diff.target
is an optional single path component that will restrict the scope of things affected by the switch to an entry in the directory represented by thelocation
of this object, or null if the entire directory is meant to be switched. The working copy will be diffed againsturl
as it exists in revisiontargeRevision
, or as it is in HEAD iftargetRevision
is invalid (<0
). UseignoreAncestry
to control whether or not items being diffed will be checked for relatedness first. Unrelated items are typically transmitted to the editor as a deletion of one thing and the addition of another, but if this flag is true, unrelated items will be diffed as if they were related. Diffs only as deeply asdepth
indicates. The caller may not perform any repository access operations using thisSVNRepository
object before finishing the report, and may not perform any repository access operations using thisSVNRepository
object from within the editing operations ofeditor
.getContents
instructs the driver of theeditor
to enable the generation of text deltas. IfgetContents
is false theeditor
'sISVNDeltaConsumer.textDeltaChunk(String, SVNDiffWindow)
method will be called once withSVNDiffWindow.EMPTY
. Note: the reporter provided by this function does NOT supply copy-from information to the diff editor callbacks. Note: in order to prevent pre-1.5 servers from doing more work than needed, and sending too much data back, a pre-1.5 'recurse' directive may be sent to the server, based ondepth
.- Specified by:
diff
in classSVNRepository
- Parameters:
url
- a repository location of the entry against which differences are calculatedtargetRevision
- a revision number of the entry located at the specifiedurl
; defaults to the latest revision (HEAD) if this arg is invalidrevision
- a revision number of the repository location to which this driver object is settarget
- a target entry name (optional)ignoreAncestry
- if true then the ancestry of the two entries to be diffed is ignored, otherwise notdepth
- tree depth to processgetContents
- if false contents (diff windows) will not be sent to the editorreporter
- a caller's reportereditor
- a caller's editor- Throws:
SVNException
- in the following cases:url
not found neither in the specifiedrevision
nor in the HEAD revision- a failure occured while connecting to a repository
- the user authentication failed
(see
SVNAuthenticationException
)
-
status
public void status(long revision, java.lang.String target, SVNDepth depth, ISVNReporterBaton reporter, ISVNEditor editor) throws SVNException Description copied from class:SVNRepository
Gets status of a path to the particulardepth
as a scope.SVNRepository.status(long, String, boolean, ISVNReporterBaton, ISVNEditor)
- Specified by:
status
in classSVNRepository
- Parameters:
revision
- a desired revision to get status against; defaults to the latest revision (HEAD)target
- an entry name (optional)depth
- defines the status scopereporter
- a client's reporter-batoneditor
- a client's status editor- Throws:
SVNException
- in the following cases:- a failure occured while connecting to a repository
- the user authentication failed
(see
SVNAuthenticationException
)
- See Also:
-
update
public void update(SVNURL url, long revision, java.lang.String target, SVNDepth depth, ISVNReporterBaton reporter, ISVNEditor editor) throws SVNException Description copied from class:SVNRepository
Asks this repository access object to 'switch' a versioned tree to a newurl
. The client initially provides aneditor
; this editor contains knowledge of where the change will begin in the working copy (ISVNEditor.openRoot(long)
is called). In return, the client receives aISVNReporter
object in hisISVNReporterBaton
implementation. The client then describes its working copy by making calls into the reporter object. When finished, the client callsISVNReporter.finishReport()
. ThisSVNRepository
object then does a complete drive ofeditor
, ending withISVNEditor.closeEdit()
, to switch the working copy.target
is an optional single path component that will restrict the scope of things affected by the switch to an entry in the directory represented by thelocation
of this object, or null if the entire directory is meant to be switched. Switches the target only as deeply asdepth
indicates. The local tree will be switched torevision
, or the HEAD revision if this arg is invalid. The caller may not perform any repository access operations using thisSVNRepository
object before finishing the report, and may not perform any repository access operations using thisSVNRepository
object from within the editing operations ofeditor
. Note: the reporter provided by this function does NOT supply copy-from information to the diff editor callbacks. Note: in order to prevent pre-1.5 servers from doing more work than needed, and sending too much data back, a pre-1.5 'recurse' directive may be sent to the server, based ondepth
.- Specified by:
update
in classSVNRepository
- Parameters:
url
- a new location in the repository to switch torevision
- a desired revision to make update to; defaults to the latest revision (HEAD)target
- an entry name (optional)depth
- the depth for update operationreporter
- a caller's reportereditor
- a caller's editor- Throws:
SVNException
- See Also:
-
update
public void update(long revision, java.lang.String target, SVNDepth depth, boolean sendCopyFromArgs, ISVNReporterBaton reporter, ISVNEditor editor) throws SVNException Description copied from class:SVNRepository
Updates a path receiving changes from a repository.target
is the name (one-level path component) of an entry that will restrict the scope of the update to this entry. In other wordstarget
is a child entry of the directory represented by the repository location to which this object is set. For example, if we have something like"/dirA/dirB"
in a repository, then this object's repository location may be set to"svn://host:port/path/to/repos/dirA"
, andtarget
may be"dirB"
.If
target
is null or empty (""
) then the scope of the update operation is the repository location to which this object is set.The
reporter
is used to describe the state of the local item(s) (i.e. items' revision numbers, deleted, switched items). All the paths described by thereporter
should be relative to the repository location to which this object is set.After that the
editor
is used to carry out all the work on updating. Thiseditor
contains knowledge of where the change will begin (whenISVNEditor.openRoot()
is called).NOTE: you may not invoke methods of this SVNRepository object from within the provided
reporter
andeditor
.- Specified by:
update
in classSVNRepository
- Parameters:
revision
- a desired revision to make update to; defaults to the latest revision (HEAD)target
- an entry name (optional)depth
- a depth for update operation, determines the scope of the updatereporter
- a caller's reportereditor
- a caller's editor- Throws:
SVNException
- in case the repository could not be connectedSVNAuthenticationException
- in case of authentication problems- See Also:
-
hasCapability
Description copied from class:SVNRepository
Returnstrue
if the repository has specifiedcapability
. This method may need to establish connection with the repository if information on capabilities has not been received yet from the repository.- Specified by:
hasCapability
in classSVNRepository
- Parameters:
capability
- one ofSVNCapability
- Returns:
- boolean if the repository has specified capability
- Throws:
SVNException
- in case the repository could not be connectedSVNAuthenticationException
- in case of authentication problems- See Also:
-
getFileRevisionsImpl
protected int getFileRevisionsImpl(java.lang.String path, long startRevision, long endRevision, boolean includeMergedRevisions, ISVNFileRevisionHandler handler) throws SVNException - Specified by:
getFileRevisionsImpl
in classSVNRepository
- Throws:
SVNException
-
logImpl
protected long logImpl(java.lang.String[] targetPaths, long startRevision, long endRevision, boolean changedPath, boolean strictNode, long limit, boolean includeMergedRevisions, java.lang.String[] revPropNames, ISVNLogEntryHandler handler) throws SVNException - Specified by:
logImpl
in classSVNRepository
- Throws:
SVNException
-
openConnection
- Throws:
SVNException
-
createDAVConnection
protected DAVConnection createDAVConnection(IHTTPConnectionFactory connectionFactory, DAVRepository repo) -
closeConnection
protected void closeConnection() -
getLocationsImpl
protected int getLocationsImpl(java.lang.String path, long pegRevision, long[] revisions, ISVNLocationEntryHandler handler) throws SVNException - Specified by:
getLocationsImpl
in classSVNRepository
- Throws:
SVNException
-
getLocationSegmentsImpl
protected long getLocationSegmentsImpl(java.lang.String path, long pegRevision, long startRevision, long endRevision, ISVNLocationSegmentHandler handler) throws SVNException - Specified by:
getLocationSegmentsImpl
in classSVNRepository
- Throws:
SVNException
-
doGetRepositoryPath
- Throws:
SVNException
-
getMergeInfoImpl
protected java.util.Map getMergeInfoImpl(java.lang.String[] paths, long revision, SVNMergeInfoInheritance inherit, boolean includeDescendants) throws SVNException - Specified by:
getMergeInfoImpl
in classSVNRepository
- Throws:
SVNException
-
replayRangeImpl
protected void replayRangeImpl(long startRevision, long endRevision, long lowRevision, boolean sendDeltas, ISVNReplayHandler handler) throws SVNException - Specified by:
replayRangeImpl
in classSVNRepository
- Throws:
SVNException
-
getCommitEditorInternal
protected ISVNEditor getCommitEditorInternal(java.util.Map locks, boolean keepLocks, SVNProperties revProps, ISVNWorkspaceMediator mediator) throws SVNException - Specified by:
getCommitEditorInternal
in classSVNRepository
- Throws:
SVNException
-
getDeletedRevisionImpl
protected long getDeletedRevisionImpl(java.lang.String path, long pegRevision, long endRevision) throws SVNException - Specified by:
getDeletedRevisionImpl
in classSVNRepository
- Throws:
SVNException
-
getConnection
-
getConnectionFactory
-
doGetMergeInfo
private java.util.Map doGetMergeInfo(java.lang.String[] paths, long revision, SVNMergeInfoInheritance inherit, boolean includeDescendants) throws SVNException - Throws:
SVNException
-
runReport
private void runReport(SVNURL url, long targetRevision, java.lang.String target, java.lang.String dstPath, SVNDepth depth, boolean ignoreAncestry, boolean resourceWalk, boolean fetchContents, boolean sendCopyFromArgs, boolean sendAll, boolean closeEditorOnException, boolean spool, ISVNWorkingCopyContentMediator workingCopyContentMediator, ISVNReporterBaton reporter, ISVNEditor editor) throws SVNException - Throws:
SVNException
-
createDirEntry
private SVNDirEntry createDirEntry(java.lang.String fullPath, DAVProperties child) throws SVNException - Throws:
SVNException
-
getInheritedPropertiesImpl
protected void getInheritedPropertiesImpl(java.lang.String path, long revision, java.lang.String propertyName, ISVNInheritedPropertiesHandler handler) throws SVNException - Specified by:
getInheritedPropertiesImpl
in classSVNRepository
- Throws:
SVNException
-