生成一个 XML 格式的报告文件,其中包含在 CVS 存储库中记录的变更日志。
重要:此任务需要在路径中使用 cvs。如果不存在,您将收到错误(例如,Windows 上的 error=2)。如果 <cvs> 不起作用,请尝试从您正在工作的目标目录中的命令行执行 cvs.exe。另请注意,此任务假设 cvs 可执行文件与 Unix 版本兼容,这对于某些其他 CVS 客户端(例如 CVSNT)并不完全正确,并且在使用此类不兼容的客户端时,某些操作可能会失败。
| 属性 | 描述 | 必需 |
|---|---|---|
来自父 <cvs> 任务的属性,这些属性在此处有意义自 Apache Ant 1.6.1 起 |
||
| cvsRoot | CVSROOT 变量。 |
否 |
| cvsRsh | CVS_RSH 变量。 |
否 |
| package | 要签出的包/模块。注意:多个属性可以使用空格分隔。如果您要指定一个名称中包含空格的模块,请使用嵌套的 <module> 元素。 |
否 |
| port | CVS 用于与服务器通信的端口。 | 否;默认为 2401 |
| passfile | 用于读取密码的密码文件。 | 否;默认为 ~/.cvspass |
| failonerror | 如果命令以非 0的返回值退出,则停止构建过程 |
否;默认为 false |
| tag | 查询特定分支的变更日志。 | 否 |
| 特定属性 | ||
| dir | 运行 cvs log 命令的目录。 | 否;默认为 ${basedir} |
| destfile | 用于写入变更日志报告的文件。 | 是 |
| usersfile | 属性文件,其中包含将用户 ID 和名称映射到名称-值对的映射,这些名称-值对应在报告中用于代替用户 ID。 | 否 |
| daysinpast | 设置要检索变更日志信息的过去天数。 | 否 |
| start | 要包含在报告中的变更日志的开始日期。 | 否 |
| end | 要包含在报告中的变更日志的结束日期。 | 否 |
| remote | 如果设置为 true,则针对存储库(使用 cvs rlog)工作,而无需工作副本。自 Ant 1.8.0 起 | 否;默认为 false |
| startTag | 标签范围的开始。如果也指定了 endTag,则它们必须都在同一个分支上。如果未指定 endTag,则范围的结束将是 startTag 所在的同一个分支上的最新版本。自 Ant 1.8.0 起 | 否 |
| endTag | 标签范围的结束。如果也指定了 startTag,则它们必须都在同一个分支上。如果未指定 startTag,则范围的开始将是 endTag 所在的分支的顶部。自 Ant 1.8.0 起 | 否 |
嵌套的 <user> 元素允许您指定 CVS 服务器上显示的用户 ID 与要包含在格式化报告中的名称之间的映射。每当指定的用户 ID 在存储库中进行更改时,报告文件中的 <author> 标签将包含 displayname 中指定的名称,而不是用户 ID。
| 属性 | 描述 | 必需 |
|---|---|---|
| displayname | 要在 CVS 变更日志报告中使用的名称。 | 是 |
| userid | 该人在 CVS 服务器上存在时的用户 ID。 | 是 |
指定要处理的包/模块,与 package 属性不同,使用此属性指定的模块可以在其名称中包含空格。
| 属性 | 描述 | 必需 |
|---|---|---|
| name | 模块/包的名称。 | 是 |
为 dve/network 目录下进行的所有更改生成变更日志报告。将这些更改写入 changelog.xml 文件。
<cvschangelog dir="dve/network"
destfile="changelog.xml"/>
为过去 10 天内在 dve/network 目录下进行的任何更改生成变更日志报告。将这些更改写入 changelog.xml 文件。
<cvschangelog dir="dve/network"
destfile="changelog.xml"
daysinpast="10"/>
为 2002 年 2 月 20 日至 2002 年 3 月 20 日之间在 dve/network 目录下进行的任何更改生成变更日志报告。将这些更改写入 changelog.xml 文件。
<cvschangelog dir="dve/network"
destfile="changelog.xml"
start="20 Feb 2002"
end="20 Mar 2002"/>
为 2002 年 2 月 20 日之后在 dve/network 目录下进行的任何更改生成变更日志报告。将这些更改写入 changelog.xml 文件。
<cvschangelog dir="dve/network"
destfile="changelog.xml"
start="20 Feb 2002"/>
为 dve/network 目录下进行的所有更改生成变更日志报告,每当遇到由用户 ID donaldp 进行的更改时,在 <author> 标签中替换名称 Peter Donald。将这些更改写入 changelog.xml 文件。
<cvschangelog dir="dve/network"
destfile="changelog.xml">
<user displayname="Peter Donald" userid="donaldp"/>
</cvschangelog>
在 ANT_16_BRANCH 上生成变更日志报告。
<cvschangelog dir="c:/dev/asf/ant.head" passfile="c:/home/myself/.cvspass"
destfile="changelogant.xml" tag="ANT_16_BRANCH"/>
Ant 包含一个基本的 XSLT 样式表,您可以使用它根据 XML 输出生成 HTML 报告。以下示例说明了如何从 XML 报告生成 HTML 报告。
<style in="changelog.xml"
out="changelog.html"
style="${ant.home}/etc/changelog.xsl">
<param name="title" expression="Ant ChangeLog"/>
<param name="module" expression="ant"/>
<param name="cvsweb" expression="https://cvs.apache.org/viewcvs/"/>
</style>
<changelog>
<entry>
<date>2002-03-06</date>
<time>12:00</time>
<author>Peter Donald</author>
<file>
<name>org/apache/myrmidon/build/AntlibDescriptorTask.java</name>
<revision>1.3</revision>
<prevrevision>1.2</prevrevision>
</file>
<msg><![CDATA[Use URLs directly rather than go via a File.
This allows templates to be stored inside jar]]></msg>
</entry>
</changelog>