生成一个 XML 格式的报告文件,其中包含 CVS 存储库中记录的两个标签或日期之间的更改。
重要:此任务需要在路径中使用 cvs。如果没有,您将收到错误(例如,Windows 上的 error=2)。如果 <cvs> 不起作用,请尝试从您正在工作的目标目录中的命令行执行 cvs.exe。另请注意,此任务假设 cvs 可执行文件与 Unix 版本兼容,这对于某些其他 CVS 客户端(例如 CVSNT)并不完全正确,并且在使用此类不兼容的客户端时,某些操作可能会失败。
此任务将 CVS 命令的输出捕获到 临时目录 中的一个文件中。
| 属性 | 描述 | 必需 |
|---|---|---|
| startTag | 要包含在报告中的差异的最早标签。 | 两者之一 |
| startDate | 要包含在报告中的差异的最早日期。 接受 cvs 命令为 -D date_spec 参数接受的所有格式。 |
|
| endTag | 要包含在报告中的差异的最新标签。 | 两者之一 |
| endDate | 要包含在报告中的差异的最新日期。 接受 cvs 命令为 -D date_spec 参数接受的所有格式。 |
|
| destfile | 要写入差异报告的文件。 | 是 |
| ignoreRemoved | 当设置为 true时,报告将不包含任何已删除的文件。自 Apache Ant 1.8.0 起 |
否;默认为 false |
cvs 任务继承的参数| 属性 | 描述 | 必需 |
|---|---|---|
| compression | true(等效于 3)、 false或 1到 9之间的数字(对应于 CVS -z# 参数的可能值)。任何其他值都被视为 false |
否;默认为不压缩 |
| cvsRoot | CVSROOT 变量。 |
否 |
| cvsRsh | CVS_RSH 变量。 |
否 |
| package | 要分析的包/模块。 自 Ant 1.6 起,可以使用空格分隔的多个包。还允许对应于不同模块的别名。如果您想指定模块名称中包含空格的模块,请使用嵌套的 <module> 元素。 |
否 |
| quiet | 抑制信息消息。 | 否;默认为 false |
| port | CVS 用于与服务器通信的端口。 | 否;默认为 2401 |
| passfile | 用于读取密码的密码文件。 | 否;默认为 ~/.cvspass |
| failonerror | 如果命令以非 0的返回值退出,则停止构建过程。 |
否;默认为 false |
指定要处理的包/模块,与 package 属性不同,使用此属性指定的模块名称中可以包含空格。
| 属性 | 描述 | 必需 |
|---|---|---|
| name | 模块/包的名称。 | 是 |
为 ant 模块中在标签 ANT_14 和 ANT_141 之间进行的所有更改生成 tagdiff 报告。将这些更改写入文件 tagdiff.xml 中。
<cvstagdiff cvsRoot=":pserver:anoncvs@cvs.apache.org:/home/cvspublic"
destfile="tagdiff.xml"
package="ant"
startTag="ANT_14"
endTag="ANT_141"/>
为 ant 模块中 2002 年 1 月进行的所有更改生成 tagdiff 报告。将更改写入文件 tagdiff.xml 中。在此示例中,未设置 cvsRoot。将使用当前的 cvsRoot(假设构建是从存储在 CVS 中的文件夹启动的)。
<cvstagdiff destfile="tagdiff.xml"
package="ant"
startDate="2002-01-01"
endDate="2002-31-01"/>
为 ant 和 jakarta-gump 模块中 2003 年 1 月进行的所有更改生成 tagdiff 报告。将更改写入文件 tagdiff.xml 中。在此示例中,未设置 cvsRoot。将使用当前的 cvsRoot(假设构建是从存储在 CVS 中的文件夹启动的)。
<cvstagdiff destfile="tagdiff.xml"
package="ant jakarta-gump"
startDate="2003-01-01"
endDate="2003-31-01"/>
Ant 包含一个基本的 XSLT 样式表,您可以使用它根据 XML 输出生成 HTML 报告。以下示例说明如何从 XML 报告生成 HTML 报告。
<style in="tagdiff.xml"
out="tagdiff.html"
style="${ant.home}/etc/tagdiff.xsl">
<param name="title" expression="Ant Diff"/>
<param name="module" expression="ant"/>
<param name="cvsweb" expression="https://cvs.apache.org/viewcvs/"/>
</style>
<tagdiff> 元素的 cvsroot 和 package 属性自 Ant 1.6 起添加。
<entry> 属性的描述
| 属性 | Comment |
|---|---|
| name | 在报告一个包时,包名将从输出中删除 |
| revision | 为在报告期结束时存在的文件提供 |
| prevrevision | 为在报告期开始时存在的文件提供。 旧的 CVS 服务器不会为已删除的文件提供它。CVS 1.12.2 提供它。 |
示例
<?xml version="1.0" encoding="UTF-8"?>
<tagdiff startTag="ANT_14" endTag="ANT_141"
cvsroot=":pserver:anoncvs@cvs.apache.org:/home/cvspublic" package="ant">
<entry>
<file>
<name>src/main/org/apache/tools/ant/DirectoryScanner.java</name>
<revision>1.15.2.1</revision>
<prevrevision>1.15</prevrevision>
</file>
</entry>
</tagdiff>