# ChangeLog Task

## ChangeLog

### Description

Generates an XML-formatted report file of the change logs recorded in a Subversion repository.

Important: This task needs "svn" on the path. If it isn't, you will get an error (such as error 2 on windows). If `<svn>` doesn't work, try to execute svn.exe from the command line in the target directory in which you are working.

### Parameters

Attribute | Description | Required
Attributes from parent svn task which are meaningful here
svnURL | the URL the subcommand should apply to. | No
dest | the directory where the checked out files are. | No, default is project's basedir.
failonerror | Stop the build process if the command exits with a return code other than `0`. Defaults to false | No
Specific attributes
dir | The directory from which to run the CVS log command. | No; defaults to ${basedir}.
destfile | The file in which to write the change log report. | Yes
usersfile | Property file that contains name-value pairs mapping user IDs and names that should be used in the report in place of the user ID. | No
daysinpast | Sets the number of days into the past for which the change log information should be retrieved. | No
start | The earliest revision/date from which change logs are to be included in the report. | No
end | The latest revision/date to which change logs are to be included in the report. | No

### Parameters specified as nested elements

#### user

The nested `<user>` element allows you to specify a mapping between a user ID as it appears on the Subversion server and a name to include in the formatted report. Anytime the specified user ID has made a change in the repository, the `<author>` tag in the report file will include the name specified in `displayname` rather than the user ID.

Attribute | Description | Required
displayname | The name to be used in the Subversion change log report. | Yes
userid | The userid of the person as it exists on the Subversion server. | Yes

### Examples

      <changelog dir="dve/network"
                    destfile="changelog.xml"
      />

Generates a change log report for all the changes that have been made under the `dve/network` directory. It writes these changes into the file `changelog.xml`.

      <changelog dir="dve/network"
                    destfile="changelog.xml"
                    daysinpast="10"
      />

Generates a change log report for any changes that were made under the `dve/network` directory in the past 10 days. It writes these changes into the file `changelog.xml`.

      <changelog dir="dve/network"
                    destfile="changelog.xml"
                    start="{2002-02-20}"
                    end="{2002-03-20}"
      />

Generates a change log report for any changes that were made between February 20, 2002 and March 20, 2002 under the `dve/network` directory. It writes these changes into the file `changelog.xml`.

      <changelog dir="dve/network"
                    destfile="changelog.xml"
                    start="{2002-02-20}"
      />

Generates a change log report for any changes that were made after February 20, 2002 under the `dve/network` directory. It writes these changes into the file `changelog.xml`.

      <changelog dir="dve/network"
                    destfile="changelog.xml"
                    start="1000"
                    end="1500"
      />

Generates a change log report for any changes that were made between Subversion revisions 1000 and 1500 under the `dve/network` directory. It writes these changes into the file `changelog.xml`.

      <changelog dir="dve/network"
                    destfile="changelog.xml">
           <user displayname="Esmerelda Weatherwax" userid="granny"/>
      </changelog>

Generates a change log report for all the changes that were made under the `dve/network` directory, substituting the name "Esmerelda Weatherwax" in the `<author>` tags anytime it encounters a change made by the user ID "granny". It writes these changes into the file `changelog.xml`.

#### Generate Report

This antlib includes a basic XSLT stylesheet that you can use to generate a HTML report based on the xml output. The following example illustrates how to generate a HTML report from the XML report.

            <style in="changelog.xml"
                   out="changelog.html"
                   style="your-path-to/etc/changelog.xsl">
              <param name="title" expression="Jakarta BCEL ChangeLog"/>
              <param name="repo" expression="http://svn.apache.org/repos/asf"/>
            </style>

#### Sample Output

      <entry>
        <date>2005-02-14</date>
        <time>01:55</time>
        <author><![CDATA[dbrosius]]></author>
        <revision>153687</revision>
        <path>
          <name><![CDATA[/jakarta/bcel/trunk/src/java/org/apache/bcel/util/BCELifier.java]]></name>
          <action>modified</action>
        </path>
        <message><![CDATA[Update BCELifier to handle the new method access flags (ACC_BRIDGE, ACC_VARARGS)]]></message>
      </entry>

Copyright © 2005 The Apache Software Foundation. All rights Reserved.