org.tmatesoft.svn.core.wc
Class SVNLogClient

java.lang.Object
  extended by org.tmatesoft.svn.core.wc.SVNBasicClient
      extended by org.tmatesoft.svn.core.wc.SVNLogClient

public class SVNLogClient
extends SVNBasicClient

The SVNLogClient class is intended for such purposes as getting revisions history, browsing repository entries and annotating file contents.

Here's a list of the SVNLogClient's methods matched against corresponing commands of the SVN command line client:

SVNKit Subversion
doLog() 'svn log'
doList() 'svn list'
doAnnotate() 'svn blame'

Since:
1.2

Constructor Summary
SVNLogClient(ISVNAuthenticationManager authManager, ISVNOptions options)
          Constructs and initializes an SVNLogClient object with the specified run-time configuration and authentication drivers.
SVNLogClient(ISVNRepositoryPool repositoryPool, ISVNOptions options)
          Constructs and initializes an SVNLogClient object with the specified run-time configuration and authentication drivers.
 
Method Summary
 void doAnnotate(java.io.File path, SVNRevision pegRevision, SVNRevision startRevision, SVNRevision endRevision, boolean ignoreMimeType, boolean includeMergedRevisions, ISVNAnnotateHandler handler, java.lang.String inputEncoding)
          Invokes handler on each line-blame item associated with revision endRevision of path, using startRevision as the default source of all blame.
 void doAnnotate(java.io.File path, SVNRevision pegRevision, SVNRevision startRevision, SVNRevision endRevision, boolean ignoreMimeType, ISVNAnnotateHandler handler)
          Obtains annotation information for each file text line from a repository (using a Working Copy path to get a corresponding URL) and passes it to a provided annotation handler.
 void doAnnotate(java.io.File path, SVNRevision pegRevision, SVNRevision startRevision, SVNRevision endRevision, ISVNAnnotateHandler handler)
          Obtains annotation information for each file text line from a repository (using a Working Copy path to get a corresponding URL) and passes it to a provided annotation handler.
 void doAnnotate(SVNURL url, SVNRevision pegRevision, SVNRevision startRevision, SVNRevision endRevision, boolean ignoreMimeType, boolean includeMergedRevisions, ISVNAnnotateHandler handler, java.lang.String inputEncoding)
          Invokes handler on each line-blame item associated with revision endRevision of url, using startRevision as the default source of all blame.
 void doAnnotate(SVNURL url, SVNRevision pegRevision, SVNRevision startRevision, SVNRevision endRevision, boolean ignoreMimeType, ISVNAnnotateHandler handler, java.lang.String inputEncoding)
          Obtains annotation information for each file text line from a repository and passes it to a provided annotation handler.
 void doAnnotate(SVNURL url, SVNRevision pegRevision, SVNRevision startRevision, SVNRevision endRevision, ISVNAnnotateHandler handler)
          Obtains annotation information for each file text line from a repository and passes it to a provided annotation handler.
 void doAnnotate(SVNURL url, SVNRevision pegRevision, SVNRevision startRevision, SVNRevision endRevision, ISVNAnnotateHandler handler, java.lang.String inputEncoding)
          Obtains annotation information for each file text line from a repository and passes it to a provided annotation handler.
 void doList(java.io.File path, SVNRevision pegRevision, SVNRevision revision, boolean fetchLocks, boolean recursive, ISVNDirEntryHandler handler)
          Deprecated. use doList(File, SVNRevision, SVNRevision, boolean, SVNDepth, int, ISVNDirEntryHandler) instead
 void doList(java.io.File path, SVNRevision pegRevision, SVNRevision revision, boolean recursive, ISVNDirEntryHandler handler)
          Deprecated. use doList(File, SVNRevision, SVNRevision, boolean, SVNDepth, int, ISVNDirEntryHandler) instead
 void doList(java.io.File path, SVNRevision pegRevision, SVNRevision revision, boolean fetchLocks, SVNDepth depth, int entryFields, ISVNDirEntryHandler handler)
          Reports the directory entry, and possibly children, for path at revision.
 void doList(SVNURL url, SVNRevision pegRevision, SVNRevision revision, boolean fetchLocks, boolean recursive, ISVNDirEntryHandler handler)
          Browses directory entries from a repository and uses the provided dir entry handler to process them.
 void doList(SVNURL url, SVNRevision pegRevision, SVNRevision revision, boolean recursive, ISVNDirEntryHandler handler)
          Deprecated. use doList(SVNURL, SVNRevision, SVNRevision, boolean, SVNDepth, int, ISVNDirEntryHandler) instead
 void doList(SVNURL url, SVNRevision pegRevision, SVNRevision revision, boolean fetchLocks, SVNDepth depth, int entryFields, ISVNDirEntryHandler handler)
          Reports the directory entry, and possibly children, for url at revision.
 void doLog(java.io.File[] paths, java.util.Collection<SVNRevisionRange> revisionRanges, SVNRevision pegRevision, boolean stopOnCopy, boolean discoverChangedPaths, boolean includeMergedRevisions, long limit, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler)
          Invokes handler on each log message from the given revisionRanges in turn, inclusive (but never invokes handler on a given log message more than once).
 void doLog(java.io.File[] paths, SVNRevision startRevision, SVNRevision endRevision, boolean stopOnCopy, boolean discoverChangedPaths, long limit, ISVNLogEntryHandler handler)
          Gets commit log messages with other revision specific information from a repository (using Working Copy paths to get corresponding URLs) and passes them to a log entry handler for processing.
 void doLog(java.io.File[] paths, SVNRevision startRevision, SVNRevision endRevision, SVNRevision pegRevision, boolean stopOnCopy, boolean discoverChangedPaths, boolean includeMergedRevisions, long limit, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler)
          Invokes handler on each log message from startRevision to endRevision in turn, inclusive (but never invokes handler on a given log message more than once).
 void doLog(java.io.File[] paths, SVNRevision pegRevision, SVNRevision startRevision, SVNRevision endRevision, boolean stopOnCopy, boolean discoverChangedPaths, long limit, ISVNLogEntryHandler handler)
          Gets commit log messages with other revision specific information from a repository (using Working Copy paths to get corresponding URLs) and passes them to a log entry handler for processing.
 void doLog(SVNURL url, java.lang.String[] paths, SVNRevision pegRevision, java.util.Collection<SVNRevisionRange> revisionRanges, boolean stopOnCopy, boolean discoverChangedPaths, boolean includeMergedRevisions, long limit, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler)
          Invokes handler on each log message from the given in turn, inclusive (but never invokes handler on a given log message more than once).
 void doLog(SVNURL url, java.lang.String[] paths, SVNRevision pegRevision, SVNRevision startRevision, SVNRevision endRevision, boolean stopOnCopy, boolean discoverChangedPaths, boolean includeMergedRevisions, long limit, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler)
          Invokes handler on each log message from startRevision to endRevision in turn, inclusive (but never invokes handler on a given log message more than once).
 void doLog(SVNURL url, java.lang.String[] paths, SVNRevision pegRevision, SVNRevision startRevision, SVNRevision endRevision, boolean stopOnCopy, boolean discoverChangedPaths, long limit, ISVNLogEntryHandler handler)
          Gets commit log messages with other revision specific information from a repository and passes them to a log entry handler for processing.
 SVNDiffOptions getDiffOptions()
          Gets the diff options that are used in annotate operations by this client.
 void setDiffOptions(SVNDiffOptions diffOptions)
          Sets diff options for this client to use in annotate operations.
 
Methods inherited from class org.tmatesoft.svn.core.wc.SVNBasicClient
dontWC17Support, getDebugLog, getOperationsFactory, getOptions, getPathListHandler, getReposRoot, getReposRoot, isIgnoreExternals, isLeaveConflictsUnresolved, isWC17Supported, setDebugLog, setEventHandler, setEventPathPrefix, setIgnoreExternals, setLeaveConflictsUnresolved, setOptions, setPathListHandler
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SVNLogClient

public SVNLogClient(ISVNAuthenticationManager authManager,
                    ISVNOptions options)
Constructs and initializes an SVNLogClient object with the specified run-time configuration and authentication drivers.

If options is null, then this SVNLogClient will be using a default run-time configuration driver which takes client-side settings from the default SVN's run-time configuration area but is not able to change those settings (read more on ISVNOptions and SVNWCUtil).

If authManager is null, then this SVNLogClient will be using a default authentication and network layers driver (see SVNWCUtil.createDefaultAuthenticationManager()) which uses server-side settings and auth storage from the default SVN's run-time configuration area (or system properties if that area is not found).

Parameters:
authManager - an authentication and network layers driver
options - a run-time configuration options driver

SVNLogClient

public SVNLogClient(ISVNRepositoryPool repositoryPool,
                    ISVNOptions options)
Constructs and initializes an SVNLogClient object with the specified run-time configuration and authentication drivers.

If options is null, then this SVNLogClient will be using a default run-time configuration driver which takes client-side settings from the default SVN's run-time configuration area but is not able to change those settings (read more on ISVNOptions and SVNWCUtil).

If repositoryPool is null, then SVNRepositoryFactory will be used to create repository access objects.

Parameters:
repositoryPool - a repository pool object
options - a run-time configuration options driver
Method Detail

setDiffOptions

public void setDiffOptions(SVNDiffOptions diffOptions)
Sets diff options for this client to use in annotate operations.

Parameters:
diffOptions - diff options object

getDiffOptions

public SVNDiffOptions getDiffOptions()
Gets the diff options that are used in annotate operations by this client. Creates a new one if none was used before.

Returns:
diff options

doAnnotate

public void doAnnotate(java.io.File path,
                       SVNRevision pegRevision,
                       SVNRevision startRevision,
                       SVNRevision endRevision,
                       ISVNAnnotateHandler handler)
                throws SVNException
Obtains annotation information for each file text line from a repository (using a Working Copy path to get a corresponding URL) and passes it to a provided annotation handler.

This method is equivalent to a call to doAnnotate(path, pegRevision, startRevision, endRevision, false, false, handler, null).

Parameters:
path - a WC file item to be annotated
pegRevision - a revision in which path is first looked up in the repository
startRevision - a revision for an operation to start from
endRevision - a revision for an operation to stop at
handler - a caller's handler to process annotation information
Throws:
SVNException - if startRevision > endRevision
See Also:
doAnnotate(File, SVNRevision, SVNRevision, SVNRevision, boolean, boolean, ISVNAnnotateHandler, String)

doAnnotate

public void doAnnotate(java.io.File path,
                       SVNRevision pegRevision,
                       SVNRevision startRevision,
                       SVNRevision endRevision,
                       boolean ignoreMimeType,
                       ISVNAnnotateHandler handler)
                throws SVNException
Obtains annotation information for each file text line from a repository (using a Working Copy path to get a corresponding URL) and passes it to a provided annotation handler.

This method is equivalent to a call to doAnnotate(path, pegRevision, startRevision, endRevision, ignoreMimeType, false, handler, null).

Parameters:
path - a WC file item to be annotated
pegRevision - a revision in which path is first looked up in the repository
startRevision - a revision for an operation to start from
endRevision - a revision for an operation to stop at
ignoreMimeType - forces operation to run (all files to be treated as text, no matter what SVNKit has inferred from the mime-type property)
handler - a caller's handler to process annotation information
Throws:
SVNException
Since:
1.1
See Also:
doAnnotate(File, SVNRevision, SVNRevision, SVNRevision, boolean, boolean, ISVNAnnotateHandler, String)

doAnnotate

public void doAnnotate(java.io.File path,
                       SVNRevision pegRevision,
                       SVNRevision startRevision,
                       SVNRevision endRevision,
                       boolean ignoreMimeType,
                       boolean includeMergedRevisions,
                       ISVNAnnotateHandler handler,
                       java.lang.String inputEncoding)
                throws SVNException
Invokes handler on each line-blame item associated with revision endRevision of path, using startRevision as the default source of all blame.

pegRevision indicates in which revision path is valid. If pegRevision is SVNRevision.UNDEFINED, then it defaults to SVNRevision.WORKING.

If startRevision is null or invalid, then it defaults to revision 1. If endRevision is null or invalid, then in defaults to SVNRevision.HEAD.

Note: this routine requires repository access.

Parameters:
path - a WC file item to be annotated
pegRevision - a revision in which path is first looked up in the repository
startRevision - a revision for an operation to start from
endRevision - a revision for an operation to stop at
ignoreMimeType - forces operation to run (all files to be treated as text, no matter what SVNKit has inferred from the mime-type property)
includeMergedRevisions - if true, then also returns data based upon revisions which have been merged to path
handler - a caller's handler to process annotation information
inputEncoding - character set to decode input bytes with
Throws:
SVNException - in the following cases:
Since:
1.2, SVN 1.5

doAnnotate

public void doAnnotate(SVNURL url,
                       SVNRevision pegRevision,
                       SVNRevision startRevision,
                       SVNRevision endRevision,
                       ISVNAnnotateHandler handler)
                throws SVNException
Obtains annotation information for each file text line from a repository and passes it to a provided annotation handler.

This method is equivalent to a call to doAnnotate(url, pegRevision, startRevision, endRevision, false, false, handler, null).

Parameters:
url - a URL of a text file that is to be annotated
pegRevision - a revision in which path is first looked up in the repository
startRevision - a revision for an operation to start from
endRevision - a revision for an operation to stop at
handler - a caller's handler to process annotation information
Throws:
SVNException - if startRevision > endRevision
See Also:
doAnnotate(SVNURL, SVNRevision, SVNRevision, SVNRevision, boolean, boolean, ISVNAnnotateHandler, String)

doAnnotate

public void doAnnotate(SVNURL url,
                       SVNRevision pegRevision,
                       SVNRevision startRevision,
                       SVNRevision endRevision,
                       ISVNAnnotateHandler handler,
                       java.lang.String inputEncoding)
                throws SVNException
Obtains annotation information for each file text line from a repository and passes it to a provided annotation handler.

This method is equivalent to a call to doAnnotate(url, pegRevision, startRevision, endRevision, false, false, handler, inputEncoding).

Parameters:
url - a URL of a text file that is to be annotated
pegRevision - a revision in which path is first looked up in the repository
startRevision - a revision for an operation to start from
endRevision - a revision for an operation to stop at
handler - a caller's handler to process annotation information
inputEncoding - a desired character set (encoding) of text lines
Throws:
SVNException
See Also:
doAnnotate(SVNURL, SVNRevision, SVNRevision, SVNRevision, boolean, boolean, ISVNAnnotateHandler, String)

doAnnotate

public void doAnnotate(SVNURL url,
                       SVNRevision pegRevision,
                       SVNRevision startRevision,
                       SVNRevision endRevision,
                       boolean ignoreMimeType,
                       ISVNAnnotateHandler handler,
                       java.lang.String inputEncoding)
                throws SVNException
Obtains annotation information for each file text line from a repository and passes it to a provided annotation handler.

This method is equivalent to a call to doAnnotate(url, pegRevision, startRevision, endRevision, ignoreMimeType, false, handler, inputEncoding).

Parameters:
url - a URL of a text file that is to be annotated
pegRevision - a revision in which path is first looked up in the repository
startRevision - a revision for an operation to start from
endRevision - a revision for an operation to stop at
ignoreMimeType - forces operation to run (all files to be treated as text, no matter what SVNKit has inferred from the mime-type property)
handler - a caller's handler to process annotation information
inputEncoding - a desired character set (encoding) of text lines
Throws:
SVNException
Since:
1.1
See Also:
doAnnotate(SVNURL, SVNRevision, SVNRevision, SVNRevision, boolean, boolean, ISVNAnnotateHandler, String)

doAnnotate

public void doAnnotate(SVNURL url,
                       SVNRevision pegRevision,
                       SVNRevision startRevision,
                       SVNRevision endRevision,
                       boolean ignoreMimeType,
                       boolean includeMergedRevisions,
                       ISVNAnnotateHandler handler,
                       java.lang.String inputEncoding)
                throws SVNException
Invokes handler on each line-blame item associated with revision endRevision of url, using startRevision as the default source of all blame.

pegRevision indicates in which revision url is valid. If pegRevision is SVNRevision.UNDEFINED, then it defaults to SVNRevision.HEAD.

If startRevision is null or invalid, then it defaults to revision 1. If endRevision is null or invalid, then in defaults to SVNRevision.HEAD.

Note: this routine requires repository access

Parameters:
url - a URL of a text file that is to be annotated
pegRevision - a revision in which url is first looked up in the repository
startRevision - a revision for an operation to start from
endRevision - a revision for an operation to stop at
ignoreMimeType - forces operation to run (all files to be treated as text, no matter what SVNKit has inferred from the mime-type property)
includeMergedRevisions - if true, then also returns data based upon revisions which have been merged to url
handler - a caller's handler to process annotation information
inputEncoding - character set to decode input bytes with
Throws:
SVNException - in the following cases:
Since:
1.2, SVN 1.5

doLog

public void doLog(java.io.File[] paths,
                  SVNRevision startRevision,
                  SVNRevision endRevision,
                  boolean stopOnCopy,
                  boolean discoverChangedPaths,
                  long limit,
                  ISVNLogEntryHandler handler)
           throws SVNException
Gets commit log messages with other revision specific information from a repository (using Working Copy paths to get corresponding URLs) and passes them to a log entry handler for processing. Useful for observing the history of affected paths, author, date and log comments information per revision.

Calling this method is equivalent to doLog(paths, startRevision, endRevision, SVNRevision.UNDEFINED, stopOnCopy, discoverChangedPaths, false, limit, null, handler).

Parameters:
paths - an array of Working Copy paths, should not be null
startRevision - a revision for an operation to start from (including this revision)
endRevision - a revision for an operation to stop at (including this revision)
stopOnCopy - true not to cross copies while traversing history, otherwise copies history will be also included into processing
discoverChangedPaths - true to report of all changed paths for every revision being processed (those paths will be available by calling SVNLogEntry.getChangedPaths())
limit - a maximum number of log entries to be processed
handler - a caller's log entry handler
Throws:
SVNException - if one of the following is true:
  • a path is not under version control
  • can not obtain a URL of a WC path - there's no such entry in the Working Copy
  • paths contain entries that belong to different repositories
See Also:
doLog(File[], SVNRevision, SVNRevision, SVNRevision, boolean, boolean, boolean, long, String[], ISVNLogEntryHandler)

doLog

public void doLog(java.io.File[] paths,
                  SVNRevision startRevision,
                  SVNRevision endRevision,
                  SVNRevision pegRevision,
                  boolean stopOnCopy,
                  boolean discoverChangedPaths,
                  boolean includeMergedRevisions,
                  long limit,
                  java.lang.String[] revisionProperties,
                  ISVNLogEntryHandler handler)
           throws SVNException
Invokes handler on each log message from startRevision to endRevision in turn, inclusive (but never invokes handler on a given log message more than once).

handler is invoked only on messages whose revisions involved a change to some path in paths. pegRevision indicates in which revision paths are valid. If pegRevision is invalid, it defaults to SVNRevision.WORKING.

If limit is non-zero, only invokes handler on the first limit logs.

If discoverChangedPaths is set, then the changed paths Map argument will be passed to a constructor of SVNLogEntry on each invocation of handler.

If stopOnCopy is set, copy history (if any exists) will not be traversed while harvesting revision logs for each target.

If includeMergedRevisions is set, log information for revisions which have been merged to paths will also be returned.

Refer to SVNLogEntry.hasChildren() for additional information on how to handle mergeinfo information during a log operation.

If revisionProperties is null, retrieves all revision properties; else, retrieves only the revprops named in the array (i.e. retrieves none if the array is empty).

If startRevision is valid but endRevision is not, then endRevision defaults to startRevision. If both startRevision and endRevision are invalid, then endRevision defaults to revision 0, and startRevision defaults either to pegRevision in case the latter one is valid, or to SVNRevision.BASE, if it is not.

Important: to avoid an exception with the SVNErrorCode.FS_NO_SUCH_REVISION error code when invoked against an empty repository (i.e. one not containing a revision 1), callers should specify the range SVNRevision.HEAD:0.

If the caller has provided a non-null ISVNEventHandler, it will be called with the SVNEventAction.SKIP event action on any unversioned paths.

Note: this routine requires repository access.

Parameters:
paths - an array of Working Copy paths, for which log messages are desired
startRevision - a revision for an operation to start from (including this revision)
endRevision - a revision for an operation to stop at (including this revision)
pegRevision - a revision in which paths are first looked up in the repository
stopOnCopy - true not to cross copies while traversing history, otherwise copies history will be also included into processing
discoverChangedPaths - true to report of all changed paths for every revision being processed (those paths will be available by calling SVNLogEntry.getChangedPaths())
includeMergedRevisions - if true, merged revisions will be also reported
limit - a maximum number of log entries to be processed
revisionProperties - names of revision properties to retrieve
handler - a caller's log entry handler
Throws:
SVNException - if one of the following is true:
  • can not obtain a URL of a WC path - there's no such entry in the Working Copy
  • paths contain entries that belong to different repositories
Since:
1.2, SVN 1.5

doLog

public void doLog(java.io.File[] paths,
                  java.util.Collection<SVNRevisionRange> revisionRanges,
                  SVNRevision pegRevision,
                  boolean stopOnCopy,
                  boolean discoverChangedPaths,
                  boolean includeMergedRevisions,
                  long limit,
                  java.lang.String[] revisionProperties,
                  ISVNLogEntryHandler handler)
           throws SVNException
Invokes handler on each log message from the given revisionRanges in turn, inclusive (but never invokes handler on a given log message more than once).

handler is invoked only on messages whose revisions involved a change to some path in paths. pegRevision indicates in which revision paths are valid. If pegRevision is invalid, it defaults to SVNRevision.WORKING.

If limit is non-zero, only invokes handler on the first limit logs.

If discoverChangedPaths is set, then the changed paths Map argument will be passed to a constructor of SVNLogEntry on each invocation of handler.

If stopOnCopy is set, copy history (if any exists) will not be traversed while harvesting revision logs for each target.

If includeMergedRevisions is set, log information for revisions which have been merged to paths will also be returned.

Refer to SVNLogEntry.hasChildren() for additional information on how to handle mergeinfo information during a log operation.

If revisionProperties is null, retrieves all revision properties; else, retrieves only the revprops named in the array (i.e. retrieves none if the array is empty).

For every SVNRevisionRange in revisionRanges: If startRevision is valid but endRevision is not, then endRevision defaults to startRevision. If both startRevision and endRevision are invalid, then endRevision defaults to revision 0, and startRevision defaults either to pegRevision in case the latter one is valid, or to SVNRevision.BASE, if it is not.

Important: to avoid an exception with the SVNErrorCode.FS_NO_SUCH_REVISION error code when invoked against an empty repository (i.e. one not containing a revision 1), callers should specify the range SVNRevision.HEAD:0.

If the caller has provided a non-null ISVNEventHandler, it will be called with the SVNEventAction.SKIP event action on any unversioned paths.

Note: this routine requires repository access.

Parameters:
paths - an array of Working Copy paths, for which log messages are desired
revisionRanges - collection of SVNRevisionRange objects
pegRevision - a revision in which paths are first looked up in the repository
stopOnCopy - true not to cross copies while traversing history, otherwise copies history will be also included into processing
discoverChangedPaths - true to report of all changed paths for every revision being processed (those paths will be available by calling SVNLogEntry.getChangedPaths())
includeMergedRevisions - if true, merged revisions will be also reported
limit - a maximum number of log entries to be processed
revisionProperties - names of revision properties to retrieve
handler - a caller's log entry handler
Throws:
SVNException - if one of the following is true:
  • can not obtain a URL of a WC path - there's no such entry in the Working Copy
  • paths contain entries that belong to different repositories
Since:
1.3, SVN 1.6

doLog

public void doLog(java.io.File[] paths,
                  SVNRevision pegRevision,
                  SVNRevision startRevision,
                  SVNRevision endRevision,
                  boolean stopOnCopy,
                  boolean discoverChangedPaths,
                  long limit,
                  ISVNLogEntryHandler handler)
           throws SVNException
Gets commit log messages with other revision specific information from a repository (using Working Copy paths to get corresponding URLs) and passes them to a log entry handler for processing. Useful for observing the history of affected paths, author, date and log comments information per revision.

Calling this method is equivalent to doLog(paths, startRevision, endRevision, pegRevision, stopOnCopy, discoverChangedPaths, false, limit, null, handler).

Parameters:
paths - an array of Working Copy paths, should not be null
pegRevision - a revision in which path is first looked up in the repository
startRevision - a revision for an operation to start from (including this revision)
endRevision - a revision for an operation to stop at (including this revision)
stopOnCopy - true not to cross copies while traversing history, otherwise copies history will be also included into processing
discoverChangedPaths - true to report of all changed paths for every revision being processed (those paths will be available by calling SVNLogEntry.getChangedPaths())
limit - a maximum number of log entries to be processed
handler - a caller's log entry handler
Throws:
SVNException - if one of the following is true:
  • a path is not under version control
  • can not obtain a URL of a WC path - there's no such entry in the Working Copy
  • paths contain entries that belong to different repositories
See Also:
doLog(File[], SVNRevision, SVNRevision, SVNRevision, boolean, boolean, boolean, long, String[], ISVNLogEntryHandler)

doLog

public void doLog(SVNURL url,
                  java.lang.String[] paths,
                  SVNRevision pegRevision,
                  SVNRevision startRevision,
                  SVNRevision endRevision,
                  boolean stopOnCopy,
                  boolean discoverChangedPaths,
                  long limit,
                  ISVNLogEntryHandler handler)
           throws SVNException
Gets commit log messages with other revision specific information from a repository and passes them to a log entry handler for processing. Useful for observing the history of affected paths, author, date and log comments information per revision.

Calling this method is equivalent to doLog(url, paths, pegRevision, startRevision, endRevision, stopOnCopy, discoverChangedPaths, false, limit, null, handler).

Parameters:
url - a target URL
paths - an array of paths relative to the target url
pegRevision - a revision in which url is first looked up
startRevision - a revision for an operation to start from (including this revision)
endRevision - a revision for an operation to stop at (including this revision)
stopOnCopy - true not to cross copies while traversing history, otherwise copies history will be also included into processing
discoverChangedPaths - true to report of all changed paths for every revision being processed (those paths will be available by calling SVNLogEntry.getChangedPaths())
limit - a maximum number of log entries to be processed
handler - a caller's log entry handler
Throws:
SVNException
Since:
1.1, new in Subversion 1.4
See Also:
doLog(SVNURL, String[], SVNRevision, SVNRevision, SVNRevision, boolean, boolean, boolean, long, String[], ISVNLogEntryHandler)

doLog

public void doLog(SVNURL url,
                  java.lang.String[] paths,
                  SVNRevision pegRevision,
                  SVNRevision startRevision,
                  SVNRevision endRevision,
                  boolean stopOnCopy,
                  boolean discoverChangedPaths,
                  boolean includeMergedRevisions,
                  long limit,
                  java.lang.String[] revisionProperties,
                  ISVNLogEntryHandler handler)
           throws SVNException
Invokes handler on each log message from startRevision to endRevision in turn, inclusive (but never invokes handler on a given log message more than once).

handler is invoked only on messages whose revisions involved a change to some path in paths. pegRevision indicates in which revision paths are valid. If pegRevision is invalid, it defaults to SVNRevision.HEAD.

If limit is non-zero, only invokes handler on the first limit logs.

If discoverChangedPaths is set, then the changed paths Map argument will be passed to a constructor of SVNLogEntry on each invocation of handler.

If stopOnCopy is set, copy history (if any exists) will not be traversed while harvesting revision logs for each target.

If includeMergedRevisions is set, log information for revisions which have been merged to paths will also be returned.

If revisionProperties is null, retrieves all revision properties; else, retrieves only the revision properties named in the array (i.e. retrieves none if the array is empty).

Important: to avoid an exception with the SVNErrorCode.FS_NO_SUCH_REVISION error code when invoked against an empty repository (i.e. one not containing a revision 1), callers should specify the range SVNRevision.HEAD:0.

Note: this routine requires repository access.

Parameters:
url - repository URL
paths - an array of paths relative to url
pegRevision - a revision in which paths are first looked up in the repository
startRevision - a revision for an operation to start from (including this revision)
endRevision - a revision for an operation to stop at (including this revision)
stopOnCopy - true not to cross copies while traversing history, otherwise copies history will be also included into processing
discoverChangedPaths - true to report of all changed paths for every revision being processed (those paths will be available by calling SVNLogEntry.getChangedPaths())
includeMergedRevisions - if true, merged revisions will be also reported
limit - a maximum number of log entries to be processed
revisionProperties - names of revision properties to retrieve
handler - a caller's log entry handler
Throws:
SVNException
Since:
1.2, SVN 1.5

doLog

public void doLog(SVNURL url,
                  java.lang.String[] paths,
                  SVNRevision pegRevision,
                  java.util.Collection<SVNRevisionRange> revisionRanges,
                  boolean stopOnCopy,
                  boolean discoverChangedPaths,
                  boolean includeMergedRevisions,
                  long limit,
                  java.lang.String[] revisionProperties,
                  ISVNLogEntryHandler handler)
           throws SVNException
Invokes handler on each log message from the given in turn, inclusive (but never invokes handler on a given log message more than once).

handler is invoked only on messages whose revisions involved a change to some path in paths. pegRevision indicates in which revision paths are valid. If pegRevision is invalid, it defaults to SVNRevision.HEAD.

If limit is non-zero, only invokes handler on the first limit logs.

If discoverChangedPaths is set, then the changed paths Map argument will be passed to a constructor of SVNLogEntry on each invocation of handler.

If stopOnCopy is set, copy history (if any exists) will not be traversed while harvesting revision logs for each target.

If includeMergedRevisions is set, log information for revisions which have been merged to paths will also be returned.

If revisionProperties is null, retrieves all revision properties; else, retrieves only the revision properties named in the array (i.e. retrieves none if the array is empty).

Important: to avoid an exception with the SVNErrorCode.FS_NO_SUCH_REVISION error code when invoked against an empty repository (i.e. one not containing a revision 1), callers should specify the range SVNRevision.HEAD:0.

Note: this routine requires repository access.

Parameters:
url - repository URL
paths - an array of paths relative to url
pegRevision - a revision in which paths are first looked up in the repository
revisionRanges - collection of SVNRevisionRange objects
stopOnCopy - true not to cross copies while traversing history, otherwise copies history will be also included into processing
discoverChangedPaths - true to report of all changed paths for every revision being processed (those paths will be available by calling SVNLogEntry.getChangedPaths())
includeMergedRevisions - if true, merged revisions will be also reported
limit - a maximum number of log entries to be processed
revisionProperties - names of revision properties to retrieve
handler - a caller's log entry handler
Throws:
SVNException
Since:
1.3, SVN 1.6

doList

public void doList(java.io.File path,
                   SVNRevision pegRevision,
                   SVNRevision revision,
                   boolean fetchLocks,
                   boolean recursive,
                   ISVNDirEntryHandler handler)
            throws SVNException
Deprecated. use doList(File, SVNRevision, SVNRevision, boolean, SVNDepth, int, ISVNDirEntryHandler) instead

Browses directory entries from a repository (using Working Copy paths to get corresponding URLs) and uses the provided dir entry handler to process them.

On every entry that this method stops it gets some useful entry information which is packed into an SVNDirEntry object and passed to the handler's handleDirEntry() method.

Parameters:
path - a WC item to get its repository location
pegRevision - a revision in which the item's URL is first looked up
revision - a target revision
fetchLocks - true to fetch locks information from a repository
recursive - true to descend recursively (relevant for directories)
handler - a caller's directory entry handler (to process info on an entry)
Throws:
SVNException

doList

public void doList(java.io.File path,
                   SVNRevision pegRevision,
                   SVNRevision revision,
                   boolean fetchLocks,
                   SVNDepth depth,
                   int entryFields,
                   ISVNDirEntryHandler handler)
            throws SVNException
Reports the directory entry, and possibly children, for path at revision. The actual node revision selected is determined by the path as it exists in pegRevision. If pegRevision is invalid, then it defaults to SVNRevision.WORKING.

Reports directory entries by invoking handler, setting a relative to path path to the SVNDirEntry object. The directory entry for path is reported using an empty path. If path is a directory, also reports its children.

If depth is SVNDepth.EMPTY, lists just path itself. If depth is SVNDepth.FILES , lists path and its file entries. If SVNDepth.IMMEDIATES, lists its immediate file and directory entries. If SVNDepth.INFINITY, lists file entries and recurses (with SVNDepth.INFINITY) on directory entries.

entryFields controls which fields in the SVNDirEntry are filled in. To have them totally filled in use SVNDirEntry.DIRENT_ALL, otherwise simply bitwise OR together the combination of fields you care about.

Note: this routine requires repository access.

Parameters:
path - a WC item to get its repository location
pegRevision - a revision in which the item's URL is first looked up
revision - a target revision
fetchLocks - true, includes locks when reporting directory entries
depth - tree depth to process
entryFields - entry fields to fill
handler - a caller's directory entry handler (to process info on an entry)
Throws:
SVNException - in the following cases:

doList

public void doList(java.io.File path,
                   SVNRevision pegRevision,
                   SVNRevision revision,
                   boolean recursive,
                   ISVNDirEntryHandler handler)
            throws SVNException
Deprecated. use doList(File, SVNRevision, SVNRevision, boolean, SVNDepth, int, ISVNDirEntryHandler) instead

Browses directory entries from a repository (using Working Copy paths to get corresponding URLs) and uses the provided dir entry handler to process them.

On every entry that this method stops it gets some useful entry information which is packed into an SVNDirEntry object and passed to the handler's handleDirEntry() method.

Parameters:
path - a WC item to get its repository location
pegRevision - a revision in which the item's URL is first looked up
revision - a target revision
recursive - true to descend recursively (relevant for directories)
handler - a caller's directory entry handler (to process info on an entry)
Throws:
SVNException

doList

public void doList(SVNURL url,
                   SVNRevision pegRevision,
                   SVNRevision revision,
                   boolean fetchLocks,
                   boolean recursive,
                   ISVNDirEntryHandler handler)
            throws SVNException
Browses directory entries from a repository and uses the provided dir entry handler to process them. This method is especially useful when having no Working Copy.

On every entry that this method stops it gets some useful entry information which is packed into an SVNDirEntry object and passed to the handler's handleDirEntry() method.

Parameters:
url - a repository location to be "listed"
pegRevision - a revision in which the item's URL is first looked up
revision - a target revision
fetchLocks - true to fetch locks information from repository
recursive - true to descend recursively (relevant for directories)
handler - a caller's directory entry handler (to process info on an entry)
Throws:
SVNException
See Also:
doList(File, SVNRevision, SVNRevision, boolean, ISVNDirEntryHandler)

doList

public void doList(SVNURL url,
                   SVNRevision pegRevision,
                   SVNRevision revision,
                   boolean fetchLocks,
                   SVNDepth depth,
                   int entryFields,
                   ISVNDirEntryHandler handler)
            throws SVNException
Reports the directory entry, and possibly children, for url at revision. The actual node revision selected is determined by the path as it exists in pegRevision. If pegRevision is invalid, then it defaults to SVNRevision.HEAD.

Reports directory entries by invoking handler, setting a relative to url path to the SVNDirEntry object. The directory entry for url is reported using an empty path. If url is a directory, also reports its children.

If depth is SVNDepth.EMPTY, lists just url itself. If depth is SVNDepth.FILES, lists url and its file entries. If SVNDepth.IMMEDIATES, lists its immediate file and directory entries. If SVNDepth.INFINITY, lists file entries and recurses (with SVNDepth.INFINITY) on directory entries.

entryFields controls which fields in the SVNDirEntry are filled in. To have them totally filled in use SVNDirEntry.DIRENT_ALL, otherwise simply bitwise OR together the combination of fields you care about.

Note: this routine requires repository access.

Parameters:
url - a repository url to be "listed"
pegRevision - a revision in which the item's URL is first looked up
revision - a target revision
fetchLocks - true, includes locks when reporting directory entries
depth - tree depth to process
entryFields - entry fields to fill
handler - a caller's directory entry handler (to process info on an entry)
Throws:
SVNException - in the following cases:

doList

public void doList(SVNURL url,
                   SVNRevision pegRevision,
                   SVNRevision revision,
                   boolean recursive,
                   ISVNDirEntryHandler handler)
            throws SVNException
Deprecated. use doList(SVNURL, SVNRevision, SVNRevision, boolean, SVNDepth, int, ISVNDirEntryHandler) instead

Browses directory entries from a repository and uses the provided dir entry handler to process them. This method is especially useful when having no Working Copy.

On every entry that this method stops it gets some useful entry information which is packed into an SVNDirEntry object and passed to the handler's handleDirEntry() method.

Parameters:
url - a repository location to be "listed"
pegRevision - a revision in which the item's URL is first looked up
revision - a target revision
recursive - true to descend recursively (relevant for directories)
handler - a caller's directory entry handler (to process info on an entry)
Throws:
SVNException