blob: 8c017b378e1e1f0c10ad443e03fb9e70d190ab32 [file] [log] [blame]
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<title>Subversion Task</title>
<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
</head>
<body>
<h2><a name="svn">SVN</a></h2>
<h3>Description</h3>
<p>Handles packages/modules retrieved from a
<a href="http://subversion.tigris.org/" target="_top">Subversion</a> repository.</p>
<p><b>Important:</b> This task needs &quot;<code>svn</code>&quot; on the path. If it isn't, you will get
an error (such as error <code>2</code> on windows). If <code>&lt;svn&gt;</code> doesn't work, try to execute <code>svn.exe</code>
from the command line in the target directory in which you are working.
<h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0">
<tr>
<td valign="top"><b>Attribute</b></td>
<td valign="top"><b>Description</b></td>
<td align="center" valign="top"><b>Required</b></td>
</tr>
<tr>
<td valign="top">subcommand</td>
<td valign="top">the SVN subcommand to execute.</td>
<td align="center" valign="top">No, default &quot;checkout&quot;.</td>
</tr>
<tr>
<td valign="top">svnURL</td>
<td valign="top">the URL the subcommand should apply to.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">dest</td>
<td valign="top">the directory where the checked out files should
be placed. Note that this is different from SVN's <code>-d</code> command line
switch as Ant will never shorten pathnames to avoid empty
directories.</td>
<td align="center" valign="top">No, default is project's basedir.</td>
</tr>
<tr>
<td valign="top">revision</td>
<td valign="top">the revision or date of the subcommand should apply to</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">quiet</td>
<td valign="top">suppress informational messages. This is the same as <code>--quiet</code> on the command line.</td>
<td align="center" valign="top">No, default &quot;false&quot;</td>
</tr>
<tr>
<td valign="top">verbose</td>
<td valign="top">Be verbose. This is the same as <code>--verbose</code> on the command line.</td>
<td align="center" valign="top">No, default &quot;false&quot;</td>
</tr>
<tr>
<td valign="top">dryrun</td>
<td valign="top">report only, don't change any files.</td>
<td align="center" valign="top">No, default to &quot;false&quot;</td>
</tr>
<tr>
<td valign="top">file</td>
<td valign="top">Uses the contents of the file passed as an
argument to this switch for the specified subcommand.</td>
<td align="center" valign="top">No.</td>
</tr>
<tr>
<td valign="top">force</td>
<td valign="top">Forces a particular command or operation to run.</td>
<td align="center" valign="top">No, defaults to false.</td>
</tr>
<tr>
<td valign="top">recursive</td>
<td valign="top">Makes a subcommand recurse into
subdirectories. Most subcommands recurse by default.</td>
<td align="center" valign="top">No.</td>
</tr>
<tr>
<td valign="top">targets</td>
<td valign="top">Tells Subversion to get the list of files that you wish to
operate on from the filename you provide instead of listing all
the files on the command line.</td>
<td align="center" valign="top">No.</td>
</tr>
<tr>
<td valign="top">output</td>
<td valign="top">the file to direct standard output from the command.</td>
<td align="center" valign="top">No, default output to ANT Log as <code>MSG_INFO</code>.</td>
</tr>
<tr>
<td valign="top">error</td>
<td valign="top">the file to direct standard error from the command.</td>
<td align="center" valign="top">No, default error to ANT Log as <code>MSG_WARN</code>.</td>
</tr>
<tr>
<td valign="top">append</td>
<td valign="top">whether to append output/error when redirecting to a file.</td>
<td align="center" valign="top">No, default to &quot;false&quot;.</td>
</tr>
<tr>
<td valign="top">failonerror</td>
<td valign="top">Stop the build process if the command exits with a
return code other than <code>0</code>. Defaults to &quot;false&quot;</td>
<td align="center" valign="top">No</td>
</tr>
</table>
<h3>Examples</h3>
<pre> &lt;svn svnURL=&quot;http://svn.apache.org/repos/asf/httpd/httpd/trunk/&quot;
dest=&quot;${ws.dir}&quot;
/&gt;</pre>
<p>checks out the URL
&quot;http://svn.apache.org/repos/asf/httpd/httpd/trunk/&quot; and
stores the files in &quot;<code>${ws.dir}</code>&quot;.</p>
<pre> &lt;svn dest=&quot;${ws.dir}&quot; command=&quot;update&quot;/&gt;</pre>
<p>updates the working copy that has previously been checked out into
&quot;<code>${ws.dir}</code>&quot;.</p>
<pre> &lt;svn subcommand=&quot;-q diff&quot; output=&quot;patch.txt&quot;/&gt;</pre>
<p>silently (<code>-q</code>) creates a file called <code>patch.txt</code> which contains a unified diff which can be used as input to patch.
The equivalent, using <code>&lt;commandline&gt;</code> elements, is:
</p>
<pre>
&lt;svn output=&quot;patch&quot;&gt;
&lt;commandline&gt;
&lt;argument value=&quot;-q&quot;/&gt;
&lt;argument value=&quot;diff&quot;/&gt;
&lt;/commandline&gt;
&lt;/svn&gt;
</pre>
or:
<pre>
&lt;svn output=&quot;patch&quot;&gt;
&lt;commandline&gt;
&lt;argument line=&quot;-q diff -u -N&quot;/&gt;
&lt;/commandline&gt;
&lt;/svn&gt;
</pre>
<p>
You may include as many <code>&lt;commandline&gt;</code> elements as you like.
Each will inherit the <code>failonerror</code> and other &quot;global&quot; parameters
from the <code>&lt;svn&gt;</code> element.
</p>
<pre> &lt;svn subcommand=&quot;update&quot;/&gt;</pre>
<p>Updates from the head of repository creating any new directories as necessary.</p>
<p>See <a href="http://svnbook.red-bean.com/en/1.1/ch09.html#svn-ch-9-sect-1" target="_top">Version Control with Subversion</a> for details,
specifically the <a href="http://svnbook.red-bean.com/en/1.1/ch09.html#svn-ch-9-sect-1" target="_top">The Subversion Command Line Client: svn</a></p>
</body>
</html>