Package org.tmatesoft.svn.core.wc2
Class SvnCommit
- java.lang.Object
-
- org.tmatesoft.svn.core.wc2.SvnOperation<T>
-
- org.tmatesoft.svn.core.wc2.SvnReceivingOperation<SVNCommitInfo>
-
- org.tmatesoft.svn.core.wc2.AbstractSvnCommit
-
- org.tmatesoft.svn.core.wc2.SvnCommit
-
- All Implemented Interfaces:
ISvnObjectReceiver<SVNCommitInfo>
,ISvnOperationOptionsProvider
public class SvnCommit extends AbstractSvnCommit
Represents commit operation. Commits files or directories into repository. Iftargets
has zero elements, then do nothing and return immediately without error. If the caller'sevent handler
is notnull
it will be called as the commit progresses with any of the following actions:SVNEventAction.COMMIT_MODIFIED
,SVNEventAction.COMMIT_ADDED
,SVNEventAction.COMMIT_DELETED
,SVNEventAction.COMMIT_REPLACED
. If the commit succeeds, the handler will be called withSVNEventAction.COMMIT_COMPLETED
event action. Ifdepth
isSVNDepth.INFINITY
, commits all changes to and below named targets. Ifdepth
isSVNDepth.EMPTY
, commits only named targets (that is, only property changes on named directory targets, and property and content changes for named file targets). Ifdepth
isSVNDepth.FILES
, behaves as above for named file targets, and for named directory targets, commits property changes on a named directory and all changes to files directly inside that directory. IfSVNDepth.IMMEDIATES
, behaves as forSVNDepth.FILES
, and for subdirectories of any named directorytarget
commits as though forSVNDepth.EMPTY
. Unlocks paths in the repository, unlesskeepLocks
istrue
.changelists
used as a restrictive filter on items that are committed; that is, doesn't commit anything unless it's a member of one of those changelists. After the commit completes successfully, removes changelist associations from the targets, unlesskeepChangelist
is set. Ifchangelists
is empty (or altogethernull
), no changelist filtering occurs. If no exception is thrown andSVNCommitInfo.getNewRevision()
is invalid (<0
), then the commit was a no-op; nothing needed to be committed.run()
returnsSVNCommitInfo
information about new committed revision.run()
throwsSVNException
in the following cases:-
exception with
SVNErrorCode.UNSUPPORTED_FEATURE
error code - if it is commit from different working copies belonging to different repositories exception withSVNErrorCode.CLIENT_PROPERTY_NAME
error code - if there is standard Subversion property among revision properties exception withSVNErrorCode.WC_FOUND_CONFLICT
error code - if item is remaining in conflict exception withSVNErrorCode.ILLEGAL_TARGET
error code - if item is not under version control or item's parent is not known to exist in the repository and is not part of the commit, yet item is part of the commit exception withSVNErrorCode.WC_PATH_NOT_FOUND
error code - if item is scheduled for addition within unversioned parent or item is scheduled for addition, but is missing exception withSVNErrorCode.NODE_UNKNOWN_KIND
error code - if item is of unknown kind exception withSVNErrorCode.NODE_UNEXPECTED_KIND
error code - item has unexpectedly changed special status exception withSVNErrorCode.WC_NOT_LOCKED
error code - if working copy directory/file is missing exception withSVNErrorCode.CLIENT_DUPLICATE_COMMIT_URL
error code - if operation trying to commit different items referring to the same URL exception withSVNErrorCode.BAD_URL
error code - if working copy directory/file is missing exception withSVNErrorCode.WC_NOT_LOCKED
error code - if operation cannot compute base URL for commit operation exception withSVNErrorCode.WC_CORRUPT_TEXT_BASE
error code - if working copy is corrupted- Version:
- 1.7
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
combinePackets
private ISvnCommitParameters
commitParameters
private boolean
force
private boolean
includeDirectoryExternals
private boolean
includeFileExternals
private boolean
isFailOnMultipleRepositories
private boolean
keepChangelists
private boolean
keepLocks
private SvnCommitPacket
packet
private SvnCommitPacket[]
splitPackets
-
Constructor Summary
Constructors Modifier Constructor Description protected
SvnCommit(SvnOperationFactory factory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SvnCommitPacket
collectCommitItems()
Returns operation's commit packet.protected void
ensureArgumentsAreValid()
ISvnCommitParameters
getCommitParameters()
Gets operation's parameters of the commit.protected int
getMaximumTargetsCount()
protected void
initDefaults()
boolean
isChangesWorkingCopy()
Gets whether the operation changes working copyboolean
isCombinePackets()
boolean
isFailOnMultipleRepositories()
boolean
isForce()
Sets whether or not to force a non-recursive commit; ifdepth
isSVNDepth.INFINITY
theforce
flag is ignored.boolean
isIncludeDirectoryExternals()
boolean
isIncludeFileExternals()
boolean
isKeepChangelists()
Gets whether or notchangelists
should be removed.boolean
isKeepLocks()
Gets whether or not to unlock files in the repository.SVNCommitInfo
run()
If commit packet isnull
, callscollectCommitItems()
to create the commit packet, then executes the operation.void
setCombinePackets(boolean combine)
void
setCommitParameters(ISvnCommitParameters commitParameters)
Sets operation's parameters of the commit.void
setFailOnMultipleRepositories(boolean fail)
void
setForce(boolean force)
Gets whether or not to force a non-recursive commit; ifdepth
isSVNDepth.INFINITY
theforce
flag is ignored.void
setIncludeDirectoryExternals(boolean includeDirectoryExternals)
void
setIncludeFileExternals(boolean includeFileExternals)
void
setKeepChangelists(boolean keepChangelists)
Sets whether or notchangelists
should be removed.void
setKeepLocks(boolean keepLocks)
Sets whether or not to unlock files in the repository.SvnCommitPacket[]
splitCommitPackets(boolean combinePackets)
-
Methods inherited from class org.tmatesoft.svn.core.wc2.AbstractSvnCommit
getCommitHandler, getCommitMessage, getRevisionProperties, setCommitHandler, setCommitMessage, setRevisionProperties, setRevisionProperty
-
Methods inherited from class org.tmatesoft.svn.core.wc2.SvnReceivingOperation
first, getReceiver, 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, setApplicalbeChangelists, setDepth, setRevision, setSingleTarget, setSleepForTimestamp, setSqliteJournalMode
-
-
-
-
Field Detail
-
keepChangelists
private boolean keepChangelists
-
keepLocks
private boolean keepLocks
-
commitParameters
private ISvnCommitParameters commitParameters
-
packet
private SvnCommitPacket packet
-
force
private boolean force
-
isFailOnMultipleRepositories
private boolean isFailOnMultipleRepositories
-
combinePackets
private boolean combinePackets
-
splitPackets
private SvnCommitPacket[] splitPackets
-
includeFileExternals
private boolean includeFileExternals
-
includeDirectoryExternals
private boolean includeDirectoryExternals
-
-
Constructor Detail
-
SvnCommit
protected SvnCommit(SvnOperationFactory factory)
-
-
Method Detail
-
isKeepChangelists
public boolean isKeepChangelists()
Gets whether or notchangelists
should be removed.- Returns:
true
ifchangelists
should be removed, otherwisefalse
-
setKeepChangelists
public void setKeepChangelists(boolean keepChangelists)
Sets whether or notchangelists
should be removed.- Parameters:
keepChangelists
-true
ifchangelists
should be removed, otherwisefalse
-
isKeepLocks
public boolean isKeepLocks()
Gets whether or not to unlock files in the repository.- Returns:
true
if files should not be unlocked in the repository, otherwisefalse
-
setKeepLocks
public void setKeepLocks(boolean keepLocks)
Sets whether or not to unlock files in the repository.- Parameters:
keepLocks
-true
if files should not be unlocked in the repository, otherwisefalse
-
getCommitParameters
public ISvnCommitParameters getCommitParameters()
Gets operation's parameters of the commit.- Returns:
- commit parameters of the operation
- See Also:
ISvnCommitParameters
-
setCommitParameters
public void setCommitParameters(ISvnCommitParameters commitParameters)
Sets operation's parameters of the commit.- Parameters:
commitParameters
- commit parameters of the operation- See Also:
ISvnCommitParameters
-
collectCommitItems
public SvnCommitPacket collectCommitItems() throws SVNException
Returns operation's commit packet. Checks arguments and callsSvnOperationFactory.collectCommitItems(SvnCommit)
if commit packet isnull
.- Returns:
- commit packet of the operation
- Throws:
SVNException
-
splitCommitPackets
public SvnCommitPacket[] splitCommitPackets(boolean combinePackets) throws SVNException
- Throws:
SVNException
-
run
public SVNCommitInfo run() throws SVNException
If commit packet isnull
, callscollectCommitItems()
to create the commit packet, then executes the operation.- Overrides:
run
in classSvnOperation<SVNCommitInfo>
- Returns:
- result depending on operation type
- Throws:
SVNException
-
ensureArgumentsAreValid
protected void ensureArgumentsAreValid() throws SVNException
- Overrides:
ensureArgumentsAreValid
in classSvnOperation<SVNCommitInfo>
- Throws:
SVNException
-
getMaximumTargetsCount
protected int getMaximumTargetsCount()
- Overrides:
getMaximumTargetsCount
in classSvnOperation<SVNCommitInfo>
-
setForce
public void setForce(boolean force)
Gets whether or not to force a non-recursive commit; ifdepth
isSVNDepth.INFINITY
theforce
flag is ignored.- Parameters:
force
-true
if non-recursive commit should be forced, otherwisefalse
-
isForce
public boolean isForce()
Sets whether or not to force a non-recursive commit; ifdepth
isSVNDepth.INFINITY
theforce
flag is ignored.- Returns:
true
if non-recursive commit should be forced, otherwisefalse
-
isChangesWorkingCopy
public boolean isChangesWorkingCopy()
Gets whether the operation changes working copy- Overrides:
isChangesWorkingCopy
in classSvnOperation<SVNCommitInfo>
- Returns:
true
if the operation changes the working copy, otherwisefalse
-
setCombinePackets
public void setCombinePackets(boolean combine)
-
isCombinePackets
public boolean isCombinePackets()
-
isFailOnMultipleRepositories
public boolean isFailOnMultipleRepositories()
-
setFailOnMultipleRepositories
public void setFailOnMultipleRepositories(boolean fail)
-
isIncludeFileExternals
public boolean isIncludeFileExternals()
-
setIncludeFileExternals
public void setIncludeFileExternals(boolean includeFileExternals)
-
isIncludeDirectoryExternals
public boolean isIncludeDirectoryExternals()
-
setIncludeDirectoryExternals
public void setIncludeDirectoryExternals(boolean includeDirectoryExternals)
-
initDefaults
protected void initDefaults()
- Overrides:
initDefaults
in classSvnReceivingOperation<SVNCommitInfo>
-
-