Cvs

描述

处理从 CVS 仓库中检索到的包/模块。

重要:此任务需要在路径中使用 cvs 二进制文件。如果没有,您将收到错误(例如,Windows 上的 error=2)。如果 <cvs> 不起作用,请尝试从您正在工作的目标目录中的命令行执行 cvs.exe。还要注意,此任务假设 cvs 可执行文件与 Unix 版本兼容,这对于某些其他 CVS 客户端(例如 CVSNT)并不完全正确,并且在使用此类不兼容的客户端时,某些操作可能会失败。

CVSNT 注意:CVSNT 倾向于让用户将密码存储在注册表中。如果 cvspass 任务passfile 属性对您不起作用,最可能的原因是 CVSNT 完全忽略了您的 .cvspass 文件。有关推荐的解决方法,请参见 bugzilla 报告 21657

参数

属性 描述 必需
command 要执行的 CVS 命令。 否;默认值为 checkout
compression true(等效于 compressionlevel=3)或 false 否;默认值为 false
compressionlevel 介于 19 之间的数字(对应于 CVS -z# 参数的可能值)。任何其他值都将被视为 compression=false 否;默认值为不压缩
cvsRoot CVSROOT 变量。
cvsRsh CVS_RSH 变量。
dest 签出文件应放置到的目录。请注意,这与 CVS 的 -d 命令行开关不同,因为 Apache Ant 永远不会缩短路径名以避免空目录。 否;默认值为项目的 basedir
package 要签出的包/模块。注意:可以使用空格将多个属性拆分。如果您想指定名称中包含空格的模块,请使用嵌套的 <module> 元素。
tag 要签出的包/模块的标签。
date 使用不迟于给定日期的最新修订版。
quiet 抑制信息消息。这与命令行上的 -q 相同。 否;默认值为 false
reallyquiet 抑制所有消息。这与命令行上的 -Q 相同。从 Ant 1.6 开始 否;默认值为 false
noexec 仅报告,不更改任何文件。 否;默认值为 false
output 将命令的标准输出重定向到的文件。 否;默认值为将输出到日志作为 MSG_INFO
error 将命令的标准错误重定向到的文件。 否;默认值为将错误到日志作为 MSG_WARN
append 是否在重定向到文件时追加输出/错误。 否;默认值为 false
port CVS 用于与服务器通信的端口。 否;默认值为 2401
passfile 要从中读取密码的密码文件。 否;默认值为 ~/.cvspass
failonerror 如果命令以非 0 的返回代码退出,则停止构建过程。 否;默认值为 false

作为嵌套元素指定的参数

module

指定要处理的包/模块,与使用此属性指定的包属性模块不同,使用此属性指定的模块的名称中可以包含空格。

属性 描述 必需
name 模块/包的名称。

示例

cvsRoot 属性指向的 CVS 仓库中签出包/模块 ant,并将文件存储在 ${ws.dir} 中。

<cvs cvsRoot=":pserver:[email protected]:/home/cvspublic"
     package="ant"
     dest="${ws.dir}"/>

更新以前签出到 ${ws.dir} 中的包/模块。

<cvs dest="${ws.dir}" command="update"/>

静默地(-q)创建一个名为 patch.txt 的文件,其中包含一个统一的(-u)差异,其中包括通过 cvs add-N)添加的新文件,并且可以用作 patch 的输入。

<cvs command="-q diff -u -N" output="patch.txt"/>

使用 <commandline> 元素的等效方法是

<cvs output="patch">
    <commandline>
        <argument value="-q"/>
        <argument value="diff"/>
        <argument value="-u"/>
        <argument value="-N"/>
    </commandline>
</cvs>

<cvs output="patch">
    <commandline>
        <argument line="-q diff -u -N"/>
    </commandline>
</cvs>

您可以包含任意数量的 <commandline> 元素。每个元素都将从 <cvs> 元素继承 failonerrorcompression 和其他“全局”参数。

从仓库的头部更新,忽略粘性位(-A)并在需要时创建任何新目录(-d)。

<cvs command="update -A -d"/>

注意:命令的文本将“按原样”传递给 cvs,因此任何 cvs 选项都应出现在命令之前,任何命令选项都应出现在命令之后,如上面的 diff 示例所示。有关详细信息,请参见 CVS 手册,特别是 CVS 命令指南