Package org.tmatesoft.svn.core.wc2
Class SvnLog
- java.lang.Object
-
- org.tmatesoft.svn.core.wc2.SvnOperation<T>
-
- org.tmatesoft.svn.core.wc2.SvnReceivingOperation<SVNLogEntry>
-
- org.tmatesoft.svn.core.wc2.SvnLog
-
- All Implemented Interfaces:
ISvnObjectReceiver<SVNLogEntry>
,ISvnOperationOptionsProvider
public class SvnLog extends SvnReceivingOperation<SVNLogEntry>
Represents log operation. Gets commit log messages with other revision specific information fortarget
' paths(targetPaths
) from a repository and returns them as list ofSVNLogEntry
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, andtargetPaths
should not be set. Operation finds root URL of the working copy paths, and calculates relativetargetPaths
for them. Operation createsSVNLogEntry
item on each log message fromstartRevision
toendRevision
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 intargetPaths
.Targets
'pegRevisions
indicates in which revisiontargetPaths
' paths are valid. Iftarget
'spegRevision
isinvalid
, it defaults toSVNRevision.WORKING
iftarget
is working copy path, orSVNRevision.HEAD
iftarget
is URL. Iflimit
is non-zero, only creates firstlimit
log entries. IfdiscoverChangedPaths
is set, then the changed pathsMap
argument will be passed to a constructor ofSVNLogEntry
on each invocation ofhandler
. IfstopOnCopy
is set, copy history (if any exists) will not be traversed while harvesting revision logs for eachtargetPath
. IfuseMergedHistory
is set, log information for revisions which have been merged totargetPaths
will also be returned. Refer toSVNLogEntry.hasChildren()
for additional information on how to handle mergeinfo information during a log operation. IfrevisionProperties
isnull
, retrieves all revision properties; else, retrieves only the revision properties named in the array (i.e. retrieves none if the array is empty). For everySvnRevisionRange
inrevisionRanges
: IfstartRevision
isvalid
butendRevision
is not, thenendRevision
defaults tostartRevision
. If bothstartRevision
andendRevision
are invalid, thenendRevision
defaults to revision0
, andstartRevision
defaults either totarget
'spegRevision
in case the latter one is valid, or toSVNRevision.BASE
, if it is not. Important: to avoid an exception with theSVNErrorCode.FS_NO_SUCH_REVISION
error code when invoked against an empty repository (i.e. one not containing a revision 1), callers should specify the rangeSVNRevision.HEAD
:0
. If the caller has provided a non-null
ISVNEventHandler
, it will be called with theSVNEventAction.SKIP
event action on any unversioned paths. Note: this routine requires repository access.SvnOperation.run()
method throwsSVNException
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
paths
contain entries that belong to different repositories
- See Also:
SVNLogEntry
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
SvnLog(SvnOperationFactory factory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addRange(SvnRevisionRange range)
Adds the revision range to the operation's revision ranges.protected void
ensureArgumentsAreValid()
long
getLimit()
Returns a maximum number of log entries to be processedprotected int
getMaximumTargetsCount()
java.lang.String[]
getRevisionProperties()
Returns what properties should be retrieved.java.util.Collection<SvnRevisionRange>
getRevisionRanges()
Returns all revision ranges for those log should be reported.java.lang.String[]
getTargetPaths()
Returns all relative paths what should be reported for eachtarget
.boolean
isChangesWorkingCopy()
Gets whether the operation changes working copyboolean
isDiscoverChangedPaths()
Returns whether to report of all changed paths for every revision being processed Iftrue
then the changed pathsMap
argument will be passed to a constructor ofSVNLogEntry
.boolean
isStopOnCopy()
Returns whether to copy history (if any exists) should be traversed while harvesting revision logs for eachtargetPath
.boolean
isUseMergeHistory()
Returns whether the log information for revisions which have been merged totargetPaths
will also be returned.void
setDiscoverChangedPaths(boolean discoverChangedPaths)
Sets whether to report of all changed paths for every revision being processed Iftrue
then the changed pathsMap
argument will be passed to a constructor ofSVNLogEntry
.void
setLimit(long limit)
Sets a maximum number of log entries to be processedvoid
setRevisionProperties(java.lang.String[] revisionProperties)
Sets what properties should be retrieved.void
setRevisionRanges(java.util.Collection<SvnRevisionRange> revisionRanges)
Sets all revision ranges for those log should be reported.void
setStopOnCopy(boolean stopOnCopy)
Sets whether to copy history (if any exists) should be traversed while harvesting revision logs for eachtargetPath
.void
setTargetPaths(java.lang.String[] targetPaths)
Sets all relative paths what should be reported for eachtarget
.void
setUseMergeHistory(boolean useMergeHistory)
Sets whether the log information for revisions which have been merged totargetPaths
will also be returned.-
Methods inherited from class org.tmatesoft.svn.core.wc2.SvnReceivingOperation
first, getReceiver, initDefaults, last, receive, run, setReceiver
-
Methods 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 Detail
-
SvnLog
protected SvnLog(SvnOperationFactory factory)
-
-
Method Detail
-
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 totargetPaths
will also be returned.- Returns:
true
if merged revisions should be also reported, otherwisefalse
-
setUseMergeHistory
public void setUseMergeHistory(boolean useMergeHistory)
Sets whether the log information for revisions which have been merged totargetPaths
will also be returned.- Parameters:
useMergeHistory
-true
if merged revisions should be also reported, otherwisefalse
-
isDiscoverChangedPaths
public boolean isDiscoverChangedPaths()
Returns whether to report of all changed paths for every revision being processed Iftrue
then the changed pathsMap
argument will be passed to a constructor ofSVNLogEntry
.- Returns:
true
if 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 Iftrue
then the changed pathsMap
argument will be passed to a constructor ofSVNLogEntry
.- Parameters:
discoverChangedPaths
-true
if 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:
true
if 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
-true
if not to cross copies while traversing history, otherwise copies history will be also included into processing
-
getRevisionRanges
public java.util.Collection<SvnRevisionRange> getRevisionRanges()
Returns all revision ranges for those log should be reported.- Returns:
- collection of
SVNRevisionRange
objects
-
setRevisionRanges
public void setRevisionRanges(java.util.Collection<SvnRevisionRange> revisionRanges)
Sets all revision ranges for those log should be reported.- Parameters:
revisionRanges
- collection ofSVNRevisionRange
objects
-
getTargetPaths
public java.lang.String[] getTargetPaths()
Returns all relative paths what should be reported for eachtarget
.- Returns:
- relative paths of the
target
-
setTargetPaths
public void setTargetPaths(java.lang.String[] targetPaths)
Sets all relative paths what should be reported for eachtarget
.- Parameters:
targetPaths
- relative paths of thetarget
-
getRevisionProperties
public java.lang.String[] getRevisionProperties()
Returns what properties should be retrieved. IfrevisionProperties
isnull
, 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
public void setRevisionProperties(java.lang.String[] revisionProperties)
Sets what properties should be retrieved. IfrevisionProperties
isnull
, 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
protected void ensureArgumentsAreValid() throws SVNException
- Overrides:
ensureArgumentsAreValid
in classSvnOperation<SVNLogEntry>
- Throws:
SVNException
-
addRange
public void addRange(SvnRevisionRange range)
Adds the revision range to the operation's revision ranges.- Parameters:
range
- revision range
-
getMaximumTargetsCount
protected int getMaximumTargetsCount()
- Overrides:
getMaximumTargetsCount
in classSvnOperation<SVNLogEntry>
-
isChangesWorkingCopy
public boolean isChangesWorkingCopy()
Gets whether the operation changes working copy- Overrides:
isChangesWorkingCopy
in classSvnOperation<SVNLogEntry>
- Returns:
true
if the operation changes the working copy, otherwisefalse
-
-