Interface ISVNReporter
- All Known Implementing Classes:
StateReporter
public interface ISVNReporter
An interface which allows a working copy to describe a subset (or possibly all) of its working-copy to a remote session, for the purposes of an update, switch, status, or diff operation.
Paths for report calls are relative to the target (not the anchor)
of the operation. Report calls must be made in depth-first order:
parents before children, all children of a parent before any
siblings of the parent. The first report call must be a setPath
with an empty path argument and a valid revision. (If
the target of the operation is locally deleted or missing, use the
anchor's revision.) If the target of the operation is deleted or
switched relative to the anchor, follow up the initial setPath call
with a linkPath or deletePath call with an empty path
argument to indicate that. In no other case may there be two
report descriptions for the same path. If the target of the
operation is a locally added file or directory (which previously
did not exist), it may be reported as having revision 0 or as
having the parent directory's revision.
- Since:
- 1.9
-
Method Summary
Modifier and Type Method Description voidabortReport()If an error occurs during a report, this routine should cause the filesystem transaction to be aborted and cleaned up.voiddeletePath(String path)Describe a working copypathas missing.voiddispose()Release the native peer (should not depend on finalize), and abort the report if it has not been completed yet.longfinishReport()The report driver calls this when the state report is finished.voidlinkPath(String url, String path, long revision, Depth depth, boolean startEmpty, String lockToken)LikesetPath(), but differs in thatpathin the working copy (relative to the root of the report driver) isn't a reflection ofpathin the repository (relative to the URL specified when opening the remote session), but is instead a reflection of a different repositoryurlatrevision, and has depthdepth.voidsetPath(String path, long revision, Depth depth, boolean startEmpty, String lockToken)Describe a working copypathas being at a particularrevisionand having the givendepth.
-
Method Details
-
dispose
void dispose()Release the native peer (should not depend on finalize), and abort the report if it has not been completed yet. -
setPath
void setPath(String path, long revision, Depth depth, boolean startEmpty, String lockToken) throws ClientExceptionDescribe a working copypathas being at a particularrevisionand having the givendepth.revisionmay beRevision.SVN_INVALID_REVNUMif (for example)pathrepresents a locally-added path with no revision number, ordepthisDepth.exclude.pathmay not be underneath a path on which setPath() was previously called withDepth.excludein this report.If
startEmptyis set andpathis a directory, the implementor should assume the directory has no entries or properties.This will override any previous setPath() calls made on parent paths.
pathis relative to the URL of the remote session that created this reporter instance.If
lockTokenis notnull, it is the lock token forpathin the working copy.- Throws:
ClientException
-
deletePath
Describe a working copypathas missing.pathmay not be underneath a path on which setPath() was previously called withDepth.excludein this report.- Throws:
ClientException
-
linkPath
void linkPath(String url, String path, long revision, Depth depth, boolean startEmpty, String lockToken) throws ClientExceptionLikesetPath(), but differs in thatpathin the working copy (relative to the root of the report driver) isn't a reflection ofpathin the repository (relative to the URL specified when opening the remote session), but is instead a reflection of a different repositoryurlatrevision, and has depthdepth.pathmay not be underneath a path on which setPath() was previously called withDepth.excludein this report.If
startEmptyis set andpathis a directory, the implementor should assume the directory has no entries or properties.If
lockTokenis notnull, it is the lock token forpathin the working copy.- Throws:
ClientException
-
finishReport
The report driver calls this when the state report is finished. Any directories or files not explicitly "set" are assumed to be at the baseline revision originally passed into do_update(). No other reporting functions, includingabortReport(), should be called after calling this function.- Returns:
- The target revision of the resulting editor drive. In
the case of
ISVNRemote.status(java.lang.String, long, org.apache.subversion.javahl.types.Depth, org.apache.subversion.javahl.callback.RemoteStatus), this is the revision against which the status call was performed; in the case ofISVNRemote#update, it is the revision updated to. - Throws:
ClientException
-
abortReport
If an error occurs during a report, this routine should cause the filesystem transaction to be aborted and cleaned up. No other reporting functions should be called after calling this function.- Throws:
ClientException
-