blob: 9fa78538c380f6424ddf7c374c5b764ce230b178 [file] [log] [blame]
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<title>CVS Task</title>
<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
</head>
<body>
<h2><a name="cvs">Cvs</a></h2>
<h3>Description</h3>
<p>Handles packages/modules retrieved from a
<a href="http://www.cvshome.org/" target="_top">CVS</a> repository.</p>
<p>When doing automated builds, the <a href="get.html">get task</a> should be
preferred over the <i>checkout</i> command, because of speed.</p>
<p><b>Important:</b> This task needs &quot;<code>cvs</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;cvs&gt;</code> doesn't work, try to execute <code>cvs.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">command</td>
<td valign="top">the CVS command to execute.</td>
<td align="center" valign="top">No, default &quot;checkout&quot;.</td>
</tr>
<tr>
<td valign="top">compression</td>
<td valign="top"><code>true</code> or <code>false</code> - if set
to true, this is the same as <code>compressionlevel=&quot;3&quot;</code></td>
<td align="center" valign="top">No. Defaults to false.</td>
</tr>
<tr>
<td valign="top">compressionlevel</td>
<td valign="top">A number between 1 and 9 (corresponding to
possible values for CVS' <code>-z#</code> argument). Any
other value is treated as <code>compression=&quot;false&quot;</code></td>
<td align="center" valign="top">No. Defaults to no compression.</td>
</tr>
<tr>
<td valign="top">cvsRoot</td>
<td valign="top">the <code>CVSROOT</code> variable.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">cvsRsh</td>
<td valign="top">the <code>CVS_RSH</code> variable.</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 CVS's -d 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">package</td>
<td valign="top">the package/module to check out.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">tag</td>
<td valign="top">the tag of the package/module to check out.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">date</td>
<td valign="top">Use the most recent revision no later than the given date</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>-q</code> on the command line.</td>
<td align="center" valign="top">No, default &quot;false&quot;</td>
</tr>
<tr>
<td valign="top">reallyquiet</td>
<td valign="top">suppress all messages. This is the same as
<code>-Q</code> on the command line. <em>since Ant 1.6</em>.</td>
<td align="center" valign="top">No, default &quot;false&quot;</td>
</tr>
<tr>
<td valign="top">noexec</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">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 MSG_INFO.</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 MSG_WARN.</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">port</td>
<td valign="top">Port used by CVS to communicate with the server.</td>
<td align="center" valign="top">No, default port 2401.</td>
</tr>
<tr>
<td valign="top">passfile</td>
<td valign="top">Password file to read passwords from.</td>
<td align="center" valign="top">No, default file ~/.cvspass.</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 false</td>
<td align="center" valign="top">No</td>
</tr>
</table>
<h3>Examples</h3>
<pre> &lt;cvs cvsRoot=&quot;:pserver:anoncvs@cvs.apache.org:/home/cvspublic&quot;
package=&quot;ant&quot;
dest=&quot;${ws.dir}&quot;
/&gt;</pre>
<p>checks out the package/module &quot;ant&quot; from the CVS
repository pointed to by the <code>cvsRoot</code> attribute, and stores the files in &quot;<code>${ws.dir}</code>&quot;.</p>
<pre> &lt;cvs dest=&quot;${ws.dir}&quot; command=&quot;update&quot;/&gt;</pre>
<p>updates the package/module that has previously been checked out into
&quot;<code>${ws.dir}</code>&quot;.</p>
<pre> &lt;cvs command=&quot;-q diff -u -N&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 (<code>-u</code>) diff which includes new files added via &quot;cvs add&quot; (<code>-N</code>) and can be used as input to patch.
The equivalent, using <code>&lt;commandline&gt;</code> elements, is:
</p>
<pre>
&lt;cvs output=&quot;patch&quot;&gt;
&lt;commandline&gt;
&lt;argument value=&quot;-q&quot;/&gt;
&lt;argument value=&quot;diff&quot;/&gt;
&lt;argument value=&quot;-u&quot;/&gt;
&lt;argument value=&quot;-N&quot;/&gt;
&lt;/commandline&gt;
&lt;/cvs&gt;
</pre>
or:
<pre>
&lt;cvs output=&quot;patch&quot;&gt;
&lt;commandline&gt;
&lt;argument line=&quot;-q diff -u -N&quot;/&gt;
&lt;/commandline&gt;
&lt;/cvs&gt;
</pre>
<p>
You may include as many &lt;commandline&gt; elements as you like.
Each will inherit the <code>failonerror</code>, <code>compression</code>, and other &quot;global&quot; parameters
from the <code>&lt;cvs&gt;</code> element.
</p>
<pre> &lt;cvs command=&quot;update -A -d&quot;/&gt;</pre>
<p>Updates from the head of repository ignoring sticky bits (<code>-A</code>) and creating any new directories as necessary (<code>-d</code>).</p>
<p>Note: the text of the command is passed to cvs &quot;as-is&quot; so any cvs options should appear
before the command, and any command options should appear after the command as in the diff example
above. See <a href="http://www.cvshome.org/docs/manual/cvs-1.11.7/cvs.html" target="_top">the cvs manual</a> for details,
specifically the <a href="http://www.cvshome.org/docs/manual/cvs-1.11.7/cvs_16.html" target="_top">Guide to CVS commands</a></p>
<hr>
<p align="center">Copyright &copy; 2000-2003 Apache Software
Foundation. All rights Reserved.</p>
</body>
</html>