Package org.tmatesoft.svn.core.wc2
Class SvnLog
- All Implemented Interfaces:
ISvnObjectReceiver<SVNLogEntry>,ISvnOperationOptionsProvider
Represents log operation.
Gets commit log messages with other revision specific information for
target' paths(targetPaths)
from a repository and returns them as list of SVNLogEntry items.
Useful for observing the history of affected paths, author, date and log comments information
per revision.
Target can represent one repository URL with list of relative paths - targetPaths
or many targets representing working copy paths can be provided, and targetPaths should not be set.
Operation finds root URL of the working copy paths, and calculates relativetargetPaths for them.
Operation creates SVNLogEntry item on each log message from
startRevision to endRevision in turn, inclusive
(but never creates item on a given log message more than once).
Log entries are created only on messages whose revisions involved
a change to some path in targetPaths. Targets' pegRevisions
indicates in which revision targetPaths' paths are valid. If target's
pegRevision is invalid, it
defaults to SVNRevision.WORKING if target is working copy path, or
SVNRevision.HEAD if target is URL.
If limit is non-zero, only creates first limit log entries.
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 targetPath.
If useMergedHistory is set, log information for
revisions which have been merged to targetPaths 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 revision properties 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 target's 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.
SvnOperation.run() method throws SVNException in if one of the following is true:
- a path is not under version control
- can not obtain a URL of a working copy path
pathscontain entries that belong to different repositories
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddRange(SvnRevisionRange range) Adds the revision range to the operation's revision ranges.protected voidlonggetLimit()Returns a maximum number of log entries to be processedprotected intString[]Returns what properties should be retrieved.Returns all revision ranges for those log should be reported.String[]Returns all relative paths what should be reported for eachtarget.booleanGets whether the operation changes working copybooleanReturns whether to report of all changed paths for every revision being processed Iftruethen the changed pathsMapargument will be passed to a constructor ofSVNLogEntry.booleanReturns whether to copy history (if any exists) should be traversed while harvesting revision logs for eachtargetPath.booleanReturns whether the log information for revisions which have been merged totargetPathswill also be returned.voidsetDiscoverChangedPaths(boolean discoverChangedPaths) Sets whether to report of all changed paths for every revision being processed Iftruethen the changed pathsMapargument will be passed to a constructor ofSVNLogEntry.voidsetLimit(long limit) Sets a maximum number of log entries to be processedvoidsetRevisionProperties(String[] revisionProperties) Sets what properties should be retrieved.voidsetRevisionRanges(Collection<SvnRevisionRange> revisionRanges) Sets all revision ranges for those log should be reported.voidsetStopOnCopy(boolean stopOnCopy) Sets whether to copy history (if any exists) should be traversed while harvesting revision logs for eachtargetPath.voidsetTargetPaths(String[] targetPaths) Sets all relative paths what should be reported for eachtarget.voidsetUseMergeHistory(boolean useMergeHistory) Sets whether the log information for revisions which have been merged totargetPathswill also be returned.Methods inherited from class org.tmatesoft.svn.core.wc2.SvnReceivingOperation
first, getReceiver, initDefaults, last, receive, run, setReceiverMethods inherited from class org.tmatesoft.svn.core.wc2.SvnOperation
addTarget, cancel, ensureEnoughTargets, ensureHomohenousTargets, getApplicableChangelists, getAuthenticationManager, getCanceller, getDepth, getEventHandler, getFirstTarget, getMinimumTargetsCount, getOperationalWorkingCopy, getOperationFactory, getOptions, getRepositoryPool, getRevision, getSqliteJournalMode, getTargets, hasFileTargets, hasLocalTargets, hasRemoteTargets, isCancelled, isSleepForTimestamp, isUseParentWcFormat, needsHomohenousTargets, run, setApplicalbeChangelists, setDepth, setRevision, setSingleTarget, setSleepForTimestamp, setSqliteJournalMode
-
Constructor Details
-
SvnLog
-
-
Method Details
-
getLimit
public long getLimit()Returns a maximum number of log entries to be processed- Returns:
- maximum number of entries
-
setLimit
public void setLimit(long limit) Sets a maximum number of log entries to be processed- Parameters:
limit- maximum number of entries
-
isUseMergeHistory
public boolean isUseMergeHistory()Returns whether the log information for revisions which have been merged totargetPathswill also be returned.- Returns:
trueif merged revisions should be also reported, otherwisefalse
-
setUseMergeHistory
public void setUseMergeHistory(boolean useMergeHistory) Sets whether the log information for revisions which have been merged totargetPathswill also be returned.- Parameters:
useMergeHistory-trueif merged revisions should be also reported, otherwisefalse
-
isDiscoverChangedPaths
public boolean isDiscoverChangedPaths()Returns whether to report of all changed paths for every revision being processed Iftruethen the changed pathsMapargument will be passed to a constructor ofSVNLogEntry.- Returns:
trueif all changed paths for every revision being processed should be reported, otherwisefalse
-
setDiscoverChangedPaths
public void setDiscoverChangedPaths(boolean discoverChangedPaths) Sets whether to report of all changed paths for every revision being processed Iftruethen the changed pathsMapargument will be passed to a constructor ofSVNLogEntry.- Parameters:
discoverChangedPaths-trueif all changed paths for every revision being processed should be reported, otherwisefalse
-
isStopOnCopy
public boolean isStopOnCopy()Returns whether to copy history (if any exists) should be traversed while harvesting revision logs for eachtargetPath.- Returns:
trueif not to cross copies while traversing history, otherwise copies history will be also included into processing
-
setStopOnCopy
public void setStopOnCopy(boolean stopOnCopy) Sets whether to copy history (if any exists) should be traversed while harvesting revision logs for eachtargetPath.- Parameters:
stopOnCopy-trueif not to cross copies while traversing history, otherwise copies history will be also included into processing
-
getRevisionRanges
Returns all revision ranges for those log should be reported.- Returns:
- collection of
SVNRevisionRangeobjects
-
setRevisionRanges
Sets all revision ranges for those log should be reported.- Parameters:
revisionRanges- collection ofSVNRevisionRangeobjects
-
getTargetPaths
Returns all relative paths what should be reported for eachtarget.- Returns:
- relative paths of the
target
-
setTargetPaths
Sets all relative paths what should be reported for eachtarget.- Parameters:
targetPaths- relative paths of thetarget
-
getRevisionProperties
Returns what properties should be retrieved. IfrevisionPropertiesisnull, retrieves all revision properties; else retrieves only the revision properties named in the array (i.e. retrieves none if the array is empty).- Returns:
- array of names of the properties
-
setRevisionProperties
Sets what properties should be retrieved. IfrevisionPropertiesisnull, retrieves all revision properties; else retrieves only the revision properties named in the array (i.e. retrieves none if the array is empty).- Parameters:
revisionProperties- array of names of the properties
-
ensureArgumentsAreValid
- Overrides:
ensureArgumentsAreValidin classSvnOperation<SVNLogEntry>- Throws:
SVNException
-
addRange
Adds the revision range to the operation's revision ranges.- Parameters:
range- revision range
-
getMaximumTargetsCount
protected int getMaximumTargetsCount()- Overrides:
getMaximumTargetsCountin classSvnOperation<SVNLogEntry>
-
isChangesWorkingCopy
public boolean isChangesWorkingCopy()Gets whether the operation changes working copy- Overrides:
isChangesWorkingCopyin classSvnOperation<SVNLogEntry>- Returns:
trueif the operation changes the working copy, otherwisefalse
-