# RevisionDiff Task

## TagDiff

### Description

Generates an XML-formatted report file of the changes between two tags 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.

This task assumes that your repository follows the best-practice layout of

    BASEURL
      |
      |
      -----> trunk
      -----> tags
               |
               |
               ----------> tag1
               ----------> tag2

### Parameters

Attribute | Description | Required
tag1 | The first tag. | Yes.
tag2 | The second tag. | No, defaults to "trunk/"
destfile | The file in which to write the diff report. | Yes
baseURL | The baseURL of the repository, used to calculate the two URLs to compare. | Yes

### Parameters inherited from the `svn` task

Attribute | Description | Required
failonerror | Stop the buildprocess if the command exits with a returncode other than 0. Defaults to false | No

### Examples

      <tagdiff failonerror="true"
          baseURL="http://svn.apache.org/repos/asf/jakarta/bcel/"
          destfile="diff.xml"
          tag1="initial"
          tag2="BCEL_5_0"
      />

Generates a tagdiff report for all the changes that have been made in the `Apache BCEL` module between the tags `initial` and `BCEL_5_0`. It writes these changes into the file `diff.xml`.

      <tagdiff failonerror="true"
          baseURL="http://svn.apache.org/repos/asf/jakarta/bcel/"
          destfile="diff.xml"
          tag1="BCEL_5_0"
          tag2="trunk"
      />

Generates a tagdiff report for all the changes that have been made in the `Apache BCEL` module between the tag `BCEL_5_0` and the `trunk`. It writes these changes into the file `diff.xml`.

      <tagdiff failonerror="true"
          baseURL="http://svn.apache.org/repos/asf/jakarta/bcel/"
          destfile="diff.xml"
          tag1="BCEL_5_0"
      />

Does the same, using `trunk` as `tag2` implicitly.

#### 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="diff.xml"
                   out="diff.html"
                   style="your-path-to/etc/diff.xsl">
              <param name="title" expression="Jakarta BCEL diff"/>
              <param name="repo" expression="http://svn.apache.org/repos/asf/jakarta/bcel/trunk"/>
            </style>

#### (Shortened) Example Output

    <?xml version="1.0" encoding="UTF-8"?>
    <tagdiff tag1="BCEL_5_0" svnurl="http://svn.apache.org/repos/asf/jakarta/bcel/" >
      <path>
        <name><![CDATA[default.properties]]></name>
        <action>added</action>
      </path>
      <path>
        <name><![CDATA[xdocs/images/classloader.gif]]></name>
        <action>modified</action>
      </path>
      <path>
        <name><![CDATA[README]]></name>
        <action>deleted</action>
      </path>
    </tagdiff>

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