This task provides an interface to Subversion
revision control system that is a compelling replacement for CVS in the open source community.
With the help of the underlying svnClientAdapter, <svn> task uses JavaHL (a
native JNI interface to the subversion api) if it
can find the corresponding library (e.g. svnjavahl.dll on windows).
Otherwise it uses svn command line interface.
Attribute | Description | Required |
---|---|---|
username | username that will be used for all nested svn commands. | No |
password | password that will be used for all nested svn commands. | No |
javahl | Set to “false” to use command line client interface instead of JNI JavaHL binding. | No (Defaults to true) |
add | createRepository | import | move | status |
cat | delete | keywordsset | propdel | switch |
checkout | diff | keywordsadd | propget | update |
commit | export | keywordsremove | propset | |
copy | ignore | mkdir | revert |
You can add files and directories to svn repository with nested
<add>
elements.
Attribute | Description | Required |
file | file to add to the repository | No |
dir | directory to add to the repository | No |
recurse | Set to "false" to operate on a single directory only
(applies only when dir attribute is set). Default is
"true"
|
No |
Parameters specified as nested elements :
Get the content of a file on repository.
Attribute | Description | Required |
destFile | Name of the destination file | No (default is the name of the file on the url) |
url | Url of the file in repository | Yes |
revision | revision to get. Possible values are : - a date with the following format : MM/DD/YYYY HH:MM AM_PM - a revision number - HEAD, BASE, COMMITED or PREV Default is "HEAD" |
No |
Check out a working copy from a repository.
Attribute | Description | Required |
url | url to checkout from | Yes |
recurse | Set to "false" to operate on single directory only. Default is "true" | No |
destPath | destination directory | Yes |
revision | revision to checkout. Possible values are : - a date with the following format : MM/DD/YYYY HH:MM AM_PM - a revision number - HEAD, BASE, COMMITED or PREV Default is "HEAD" |
No |
Parameters specified as nested elements :
Send changes from your working copy to the repository.
Attribute | Description | Required |
file | file to commit | No |
recurse | Set to "false" to operate on single directory only.
Default is "true" Apply only when dir attribute is set. |
No |
dir | directory to commit | No |
message | commit message | Yes |
Parameters specified as nested elements :
Duplicate something in working copy or repository, remembering
history.
source and destination can each be either a working copy (WC) path or URL:
Attribute | Description | Required |
srcPath | source path | One of the two |
srcUrl | source url | |
testPath | destination path | One of the two |
destUrl | destination url | |
message | commit message | when destUrl is set |
revision | revision to copy from (when srcUrl is set) Possible values are : - a date with the following format : MM/DD/YYYY HH:MM AM_PM - a revision number - HEAD, BASE, COMMITED or PREV Default is "HEAD" |
no |
Create a new, empty repository at path.
Attribute | Description | Required |
path | Path where to create the new repository | Yes |
Example:
<svn
javahl="false">
<createRepository
path="repository"/>
</svn>
If run on a working copy target, the item is scheduled for
deletion upon the next commit. Files, and directories that have
not been committed, are immediately removed from the working copy.
The command will not remove targets that are, or contain,
unversioned or modified items; use the force attribute to override
this behaviour.
If run on an url, the item is deleted from the repository via an immediate commit.
Attribute | Description | Required |
file | file to delete | No |
url | url to delete | No |
dir | directory to delete | No |
message | commit message | when url attribute is set |
force | default is "false" | No |
Parameters specified as nested elements :
Display the differences between two paths (oldPath and newPath) or two urls (oldUrl and newUrl).
Attribute | Description | Required |
oldPath | If oldUrl is not set, defaults to the path '.' | No |
oldUrl | No | |
oldTargetRevision | defaults to BASE or, if oldUrl is set, to HEAD | No |
newPath | defaults to oldPath if oldUrl is not set | No |
newUrl | No | |
newTargetRevision | defaults to the current working version or, if newUrl is set, to HEAD | No |
outFile | Default is 'patch' | No |
recurse | Set to "false" to operate on single directory only. Default is "true" | No |
Example : diff between BASE and current working version
<svn
javahl="${javahl}">
<diff
oldPath="workingcopy/diffTest/file.txt"
outFile="workingcopy/diffTest/patch.txt"/>
</svn>
srcurl
,
at revision revision
if it is given, otherwise at HEAD, into destPath
.
srcPath
into destPath
. all local changes will be preserved,
but files not under revision control will not be copied.Attribute | Description | Required |
srcUrl | source url to export from | One of the two |
srcPath | source path to export from | |
destPath | destination path | Yes |
revision | revision of the source url to export from. Defaults is
"HEAD" Possible values are : - a date with the following format : MM/DD/YYYY HH:MM AM_PM - a revision number - HEAD, BASE, COMMITED or PREV |
No |
Add a given file or a pattern to the ignored files list (modifies svn:ignore property)
Attribute | Description | Required |
file | file to ignore | One of the two |
dir | directory on which we will update svn:ignore property | |
pattern | pattern to add to svn:ignore on the directory Only when dir is set |
Yes |
recurse | Set to "true" to add the pattern recursively to
directories. Default is "false" Only when dir is set |
No |
Example :
<ignore
dir="workingcopy/ignoreTest/dir1"
pattern="*.ignore"
recurse="true"/>
Commit an unversioned file or tree into the repository.
Recursively commit a copy of path
to url
.
If newEntry
is not set, copy top-level contents of path
intourl
directly.
Otherwise, create newEntry
underneath url
and begin copy there.
Attribute | Description | Required |
path | source path to export from | Yes |
url | source url to import to | Yes |
newEntry | No | |
message | commit message | Yes |
recurse | Set to "false" to operate on single directory only. Default is "true" | False |
Keywordsset controls which keywords will be substituted on the given files. Valid keywords are:
Attribute | Description | Required |
file | File for which keywords will be substituted | Either file, dir or filesets |
dir | All files in this directory will have their keywords substituted (recursively) | Either file, dir or filesets |
keywords | The keywords to substitute on the given files | No |
HeadURL/URL Author, LastChangedBy Date, LastChangedDate Rev, LastChangedRevision Id |
Set to “true“ the keyword to substitute it on the given file. | No |
Parameters specified as nested elements :
Keywordsadd add some keywords to be substituted on the given
files. Present keywords are not modified.
The attributes are the same than for keywordsset command.
Keywordsadd remove some keywords to be substituted on the given
files. Other present keywords are not modified.
The attributes are the same than for keywordsset command.
Create a new directory under revision control.
If target is a working copy path the directory is scheduled for addition in the
working copy. If target is an url the directory is created in
the repository via an immediate commit.
In both cases all the intermediate directories must already exist.
Attribute | Description | Required |
path | path to create | One of the two |
url | url to create | |
message | commit message | Yes |
Move/rename something in working copy or repository.
cource and destination can both be working copy (WC) paths or
URLs:
WC -> WC: move and
schedule for addition (with history)
URL ->
URL: complete server-side rename.
Attribute | Description | Required |
srcPath | source path | One of the two |
srcUrl | source url | |
destPath | destination path | One of the two |
destUrl | destination url | |
message | commit message | Yes |
Remove a property from files or dirs.
Attribute | Description | Required |
path | path of the file or directory on which to delete the property | Yes |
name | name of the property to delete | Yes |
recurse | if set, property will be removed recursively | No |
Get a property from a file or a directory.
Attribute | Description | Required |
path | path of the file or directory on which to get the property | Yes |
name | name of the property to get | Yes |
property | the name of the property to set with the value of the svn property | One of the two |
file | file that will contain the value of the property |
Example :
<propget
path="workingcopy/propTest/file.png"
name="svn:mime-type"
property="propTest.mimeType"/>
Set a property on files or dirs.
Attribute | Description | Required |
path | path of the file or directory on which to set the property | Yes |
name | name of the property to set | Yes |
value | the value of the property | One of the two |
file | the file that will be used as a value | |
recurse | if set, property will be set recursively | No |
Note:svn recognizes the following special versioned properties but will store any arbitrary properties set:
Restore pristine working copy file (undo most local edits).
Attribute | Description | Required |
file | file to revert | No |
dir | directory to revert | No |
recurse | Set to "false" to operate on a single directory only
(applies only when dir attribute is set). Default is
"false" |
No |
revision | revision. Defaults is "HEAD" Possible values are : - a date with the following format : MM/DD/YYYY HH:MM AM_PM - a revision number - HEAD, BASE, COMMITED or PREV |
No |
Parameters specified as nested elements :
Get the status of working copy files and directories.
Attribute | Description | Required |
path | path of the file or directory | Yes |
textStatusProperty | Name of the property to set to the status of the item | No |
propStatusProperty | Name of the property to set to the status of the item properties | No |
revisionProperty | Name of the property to set to the revision of the item (or “” if unversioned) | No |
lastChangedRevisionProperty | Name of the property to set to the last changed revision of the item (or “” if unversioned) | No |
lastCommitAuthorProperty | Name of the property to set to the last commit author (or “” if unversioned) | No |
urlProperty | Name of the property to set to the url of the item | No |
The value of TextStatusProperty can be :
Example :
<status
path="workingcopy/statusTest/added.txt"
textStatusProperty="testStatus.textStatus"
propStatusProperty="testStatus.propStatus"
lastChangedRevisionProperty="testStatus.lastCommitRevision"
revisionProperty="testStatus.revision"
lastCommitAuthorProperty="testStatus.lastCommitAuthor"
Update the working copy to mirror a new URL within the repository. This behaviour is similar to 'svn update', and is the way to move a working copy to a branch or tag within the same repository.
Attribute | Description | Required |
path | The working copy to switch to the given url | Yes |
url | The url to switch to | Yes |
recurse | Set to "false" to operate on a single directory only. Default is "true" | No |
revision | revision. Defaults is "HEAD" Possible values are : - a date with the following format : MM/DD/YYYY HH:MM AM_PM - a revision number - HEAD, BASE, COMMITED or PREV |
No |
Example :
<svn>
<switch
path="workingcopy/switchTest"
url="${urlRepos}/switchTestBranch"/>
</svn>
Bring changes from the repository into the working copy.
If no
revision given, bring working copy up-to-date with HEAD rev.
Else synchronize working copy to revision.
Attribute | Description | Required |
file | file to update | No |
dir | directory to update | No |
recurse | Set to "false" to operate on a single directory only
(applies only when dir attribute is set). Default is
"true" |
No |
revision | revision. Defaults is "HEAD" Possible values are : - a date with the following format : MM/DD/YYYY HH:MM AM_PM - a revision number - HEAD, BASE, COMMITED or PREV |
No |