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 void
abortReport()
If an error occurs during a report, this routine should cause the filesystem transaction to be aborted and cleaned up.void
deletePath(String path)
Describe a working copypath
as missing.void
dispose()
Release the native peer (should not depend on finalize), and abort the report if it has not been completed yet.long
finishReport()
The report driver calls this when the state report is finished.void
linkPath(String url, String path, long revision, Depth depth, boolean startEmpty, String lockToken)
LikesetPath()
, but differs in thatpath
in the working copy (relative to the root of the report driver) isn't a reflection ofpath
in the repository (relative to the URL specified when opening the remote session), but is instead a reflection of a different repositoryurl
atrevision
, and has depthdepth
.void
setPath(String path, long revision, Depth depth, boolean startEmpty, String lockToken)
Describe a working copypath
as being at a particularrevision
and 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 copypath
as being at a particularrevision
and having the givendepth
.revision
may beRevision.SVN_INVALID_REVNUM
if (for example)path
represents a locally-added path with no revision number, ordepth
isDepth.exclude
.path
may not be underneath a path on which setPath() was previously called withDepth.exclude
in this report.If
startEmpty
is set andpath
is a directory, the implementor should assume the directory has no entries or properties.This will override any previous setPath() calls made on parent paths.
path
is relative to the URL of the remote session that created this reporter instance.If
lockToken
is notnull
, it is the lock token forpath
in the working copy.- Throws:
ClientException
-
deletePath
Describe a working copypath
as missing.path
may not be underneath a path on which setPath() was previously called withDepth.exclude
in this report.- Throws:
ClientException
-
linkPath
void linkPath(String url, String path, long revision, Depth depth, boolean startEmpty, String lockToken) throws ClientExceptionLikesetPath()
, but differs in thatpath
in the working copy (relative to the root of the report driver) isn't a reflection ofpath
in the repository (relative to the URL specified when opening the remote session), but is instead a reflection of a different repositoryurl
atrevision
, and has depthdepth
.path
may not be underneath a path on which setPath() was previously called withDepth.exclude
in this report.If
startEmpty
is set andpath
is a directory, the implementor should assume the directory has no entries or properties.If
lockToken
is notnull
, it is the lock token forpath
in 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
-