The
SVNCommitClient class provides methods to perform operations that relate to
committing changes to an SVN repository. These operations are similar to
respective commands of the native SVN command line client
and include ones which operate on working copy items as well as ones
that operate only on a repository.
Here's a list of the
SVNCommitClient's commit-related methods
matched against corresponing commands of the SVN command line
client:
| SVNKit | Subversion |
| doCommit() | 'svn commit' |
| doImport() | 'svn import' |
| doDelete() | 'svn delete URL' |
| doMkDir() | 'svn mkdir URL' |
doCollectCommitItems
public SVNCommitPacket doCollectCommitItems(File[] paths,
boolean keepLocks,
boolean force,
boolean recursive)
throws SVNException Collects commit items (containing detailed information on each Working Copy item
that was changed and need to be committed to the repository) into a single
SVNCommitPacket. Further this commit packet can be passed to
doCommit().
paths - an array of local items which should be traversed
to collect information on every changed item (one
SVNCommitItem per each
modified local item)keepLocks - if true and there are local items that
were locked then these items will be left locked after
traversing all of them, otherwise the items will be unlockedforce - forces collecting commit items for a non-recursive commitrecursive - relevant only for directory items: if true then
the entire directory tree will be traversed including all child
directories, otherwise only items located in the directory itself
will be processed
- an SVNCommitPacket containing
all Working Copy items having local modifications and represented as
SVNCommitItem objects; if no modified
items were found then
SVNCommitPacket.EMPTY is returned
doCollectCommitItems
public SVNCommitPacket[] doCollectCommitItems(File[] paths,
boolean keepLocks,
boolean force,
boolean recursive,
boolean combinePackets)
throws SVNException Collects commit items (containing detailed information on each Working Copy item
that was changed and need to be committed to the repository) into different
SVNCommitPackets. This allows to prepare commit packets for different
Working Copies located "belonging" different repositories. Separate packets will
be committed separately. If the repository is the same for all the paths, then all
collected commit packets can be combined into a single one and committed in a single
transaction.
paths - an array of local items which should be traversed
to collect information on every changed item (one
SVNCommitItem per each
modified local item)keepLocks - if true and there are local items that
were locked then these items will be left locked after
traversing all of them, otherwise the items will be unlockedforce - forces collecting commit items for a non-recursive commitrecursive - relevant only for directory items: if true then
the entire directory tree will be traversed including all child
directories, otherwise only items located in the directory itself
will be processedcombinePackets - if true then collected commit
packets will be joined into a single one, so that to be committed
in a single transaction
- an array of commit packets
doCommit
public SVNCommitInfo doCommit(File[] paths,
boolean keepLocks,
String commitMessage,
boolean force,
boolean recursive)
throws SVNException Committs local changes made to the Working Copy items (provided as an array of
Files) to the repository.
paths - an array of local items which should be traversed
to commit changes they have to the repositorykeepLocks - if true and there are local items that
were locked then the commit will left them locked,
otherwise the items will be unlocked after the commit
succeedscommitMessage - a string to be a commit log messageforce - true to force a non-recursive commit; if
recursive is set to true the force
flag is ignoredrecursive - relevant only for directory items: if true then
the entire directory tree will be committed including all child directories,
otherwise only items located in the directory itself
- information on a new revision as the result
of the commit
doCommit
public SVNCommitInfo doCommit(SVNCommitPacket commitPacket,
boolean keepLocks,
String commitMessage)
throws SVNException Committs local changes made to the Working Copy items to the repository.
commitPacket contains commit items (
SVNCommitItem)
which represent local Working Copy items that were changed and are to be committed.
Commit items are gathered in a single
SVNCommitPacket
by invoking
doCollectCommitItems().
commitPacket - a single object that contains items to be committedkeepLocks - if true and there are local items that
were locked then the commit will left them locked,
otherwise the items will be unlocked after the commit
succeedscommitMessage - a string to be a commit log message
- information on a new revision as the result
of the commit
doCommit
public SVNCommitInfo[] doCommit(SVNCommitPacket[] commitPackets,
boolean keepLocks,
String commitMessage)
throws SVNException Committs local changes, made to the Working Copy items, to the repository.
commitPackets is an array of packets that contain commit items (
SVNCommitItem)
which represent local Working Copy items that were changed and are to be committed.
Commit items are gathered in a single
SVNCommitPacket
by invoking
doCollectCommitItems().
This allows to commit separate trees of Working Copies "belonging" to different
repositories. One packet per one repository. If repositories are different (it means more than
one commit will be done),
commitMessage may be replaced by a commit handler
to be a specific one for each commit.
commitPackets - logically grouped items to be committedkeepLocks - if true and there are local items that
were locked then the commit will left them locked,
otherwise the items will be unlocked after the commit
succeedscommitMessage - a string to be a commit log message
doDelete
public SVNCommitInfo doDelete(SVNURL[] urls,
String commitMessage)
throws SVNException Committs removing specified URL-paths from the repository.
urls - an array containing URL-strings that represent
repository locations to be removedcommitMessage - a string to be a commit log message
- information on a new revision as the result
of the commit
SVNException - if one of the following is true:
- a URL does not exist
- probably some of URLs refer to different
repositories
doImport
public SVNCommitInfo doImport(File path,
SVNURL dstURL,
String commitMessage,
boolean recursive)
throws SVNException Committs an addition of a local unversioned file or directory into
the repository. If the destination URL (dstURL) contains any
non-existent parent directories they will be automatically created by the
server.
path - a local unversioned file or directory to be imported
into the repositorydstURL - a URL-string that represents a repository location
where the path will be importedcommitMessage - a string to be a commit log messagerecursive - this flag is relevant only when the path is
a directory: if true then the entire directory
tree will be imported including all child directories, otherwise
only items located in the directory itself
- information on a new revision as the result
of the commit
SVNException - if one of the following is true:
dstURL is invalid
- the path denoted by
dstURL already
exists
path contains a reserved name - '.svn'
doImport
public SVNCommitInfo doImport(File path,
SVNURL dstURL,
String commitMessage,
boolean useGlobalIgnores,
boolean recursive)
throws SVNException Committs an addition of a local unversioned file or directory into
the repository. If the destination URL (dstURL) contains any
non-existent parent directories they will be automatically created by the
server.
path - a local unversioned file or directory to be imported
into the repositorydstURL - a URL-string that represents a repository location
where the path will be importedcommitMessage - a string to be a commit log messageuseGlobalIgnores - if true
then those paths that match global ignore patterns controlled
by a config options driver (see isIgnored())
will not be imported, otherwise global ignore patterns are not
usedrecursive - this flag is relevant only when the path is
a directory: if true then the entire directory
tree will be imported including all child directories, otherwise
only items located in the directory itself
- information on a new revision as the result
of the commit
SVNException - if one of the following is true:
dstURL is invalid
- the path denoted by
dstURL already
exists
path contains a reserved name - '.svn'
doMkDir
public SVNCommitInfo doMkDir(SVNURL[] urls,
String commitMessage)
throws SVNException Committs a creation of a new directory/directories in the repository.
urls - an array containing URL-strings that represent
new repository locations to be createdcommitMessage - a string to be a commit log message
- information on a new revision as the result
of the commit
SVNException - if some of URLs refer to different
repositories
getCommitHandler
public ISVNCommitHandler getCommitHandler()
Returns the specified commit handler (if set) being in use or a default one
(DefaultSVNCommitHandler) if no special
implementations of ISVNCommitHandler were
previousely provided.
- the commit handler being in use or a default one
getCommitParameters
public ISVNCommitParameters getCommitParameters()
Returns commit parameters.
If no user parameters were previously specified, once creates and
returns
default ones.
setCommitHandler
public void setCommitHandler(ISVNCommitHandler handler)
Sets an implementation of
ISVNCommitHandler to
the commit handler that will be used during commit operations to handle
commit log messages. The handler will receive a clien's log message and items
(represented as
SVNCommitItem objects) that will be
committed. Depending on implementor's aims the initial log message can
be modified (or something else) and returned back.
If using
SVNCommitClient without specifying any
commit handler then a default one will be used -
DefaultSVNCommitHandler.
handler - an implementor's handler that will be used to handle
commit log messages
setCommitParameters
public void setCommitParameters(ISVNCommitParameters parameters)
Sets commit parameters to use.
When no parameters are set
default
ones are used.
parameters - commit parameters