Browse Source

support for CVS tags as start/end in cvcchangelog. Submitted by Rob van Oostrum. PR 27419.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@705646 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 16 years ago
parent
commit
548fee43bf
7 changed files with 187 additions and 17 deletions
  1. +4
    -0
      WHATSNEW
  2. +17
    -0
      docs/manual/CoreTasks/changelog.html
  3. +36
    -1
      src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java
  4. +69
    -0
      src/tests/antunit/taskdefs/cvs/cvs.xml
  5. +24
    -0
      src/tests/antunit/taskdefs/cvs/repository/CVSROOT/history
  6. +2
    -0
      src/tests/antunit/taskdefs/cvs/repository/CVSROOT/val-tags
  7. +35
    -16
      src/tests/antunit/taskdefs/cvs/repository/antmodule3/yet another test.txt,v

+ 4
- 0
WHATSNEW View File

@@ -473,6 +473,10 @@ Other changes:
work against a remote repository without any working copy.
Bugzilla Report 27419.

* start and end tags can now be used instead of dates in
<cvschangelog>.
Bugzilla Report 27419.

Changes from Ant 1.7.0 TO Ant 1.7.1
=============================================



+ 17
- 0
docs/manual/CoreTasks/changelog.html View File

@@ -132,6 +132,23 @@ operation may fail when using such an incompatible client.
false. <em>Since Ant 1.8.0</em></td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">startTag</td>
<td valign="top">The start of a tag range. If endTag is also
specified, they must both be on the same branch. If endTag is not
specified, the end of the range will be the latest on the same
branch on which startTag lives. <em>Since Ant 1.8.0</em></td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">endTag</td>
<td valign="top">The end of a tag range. If startTag is also
specified, they must both be on the same branch. If startTag is
not specified, the start of the range will be the top of the
branch on which endTag lives.</td> included in the report.
<em>Since Ant 1.8.0</em></td>
<td align="center" valign="top">No</td>
</tr>
</table>

<h3>Parameters specified as nested elements</h3>


+ 36
- 1
src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java View File

@@ -98,6 +98,11 @@ public class ChangeLogTask extends AbstractCvsTask {
/** Determines whether log (false) or rlog (true) is used */
private boolean remote = false;

/** Start tag when doing tag ranges. */
private String startTag;

/** End tag when doing tag ranges. */
private String endTag;

/**
* Filesets containing list of files against which the cvs log will be
@@ -191,6 +196,25 @@ public class ChangeLogTask extends AbstractCvsTask {
this.remote = remote;
}

/**
* Set the tag at which the changelog should start.
*
* @param start The date at which the changelog should start.
*/
public void setStartTag(final String start) {
this.startTag = start;
}


/**
* Set the tag at which the changelog should stop.
*
* @param end The date at which the changelog should stop.
*/
public void setEndTag(final String end) {
this.endTag = end;
}

/**
* Adds a set of files about which cvs logs will be generated.
*
@@ -250,7 +274,12 @@ public class ChangeLogTask extends AbstractCvsTask {
// parse.
addCommandArgument("-N");
}
if (null != startDate) {
if (null != startTag || null != endTag) {
// man, do I get spoiled by C#'s ?? operator
String startValue = startTag == null ? "" : startTag;
String endValue = endTag == null ? "" : endTag;
addCommandArgument("-r" + startValue + "::" + endValue);
} else if (null != startDate) {
final SimpleDateFormat outputDate =
new SimpleDateFormat("yyyy-MM-dd");

@@ -336,6 +365,12 @@ public class ChangeLogTask extends AbstractCvsTask {

throw new BuildException(message);
}
if ((null != startTag || null != endTag)
&& (null != startDate || null != endDate)) {
final String message = "Specify either a tag or date range,"
+ " not both";
throw new BuildException(message);
}
}

/**


+ 69
- 0
src/tests/antunit/taskdefs/cvs/cvs.xml View File

@@ -60,6 +60,75 @@
value="[yet another test.txt]"/>
</target>

<target name="xtestRemoteChangelogStartTag">
<mkdir dir="${output}"/>
<cvschangelog cvsroot="${cvsroot}"
remote="true" startTag="testtag1"
destfile="${output}/report.xml">
<module name="antmodule3"/>
</cvschangelog>
<au:assertFileExists file="${output}/report.xml"/>
<au:assertResourceContains resource="${output}/report.xml"
value="[yet another test.txt]"/>
</target>

<target name="testRemoteChangelogEndTag">
<mkdir dir="${output}"/>
<cvschangelog cvsroot="${cvsroot}"
remote="true" endTag="testtag2"
destfile="${output}/report.xml">
<module name="antmodule3"/>
</cvschangelog>
<au:assertFileExists file="${output}/report.xml"/>
<au:assertResourceContains resource="${output}/report.xml"
value="[yet another test.txt]"/>
</target>

<target name="testRemoteChangelogWithTags">
<mkdir dir="${output}"/>
<cvschangelog cvsroot="${cvsroot}"
remote="true" endTag="testtag2" startTag="testtag1"
destfile="${output}/report.xml">
<module name="antmodule3"/>
</cvschangelog>
<au:assertFileExists file="${output}/report.xml"/>
<au:assertResourceContains resource="${output}/report.xml"
value="[yet another test.txt]"/>
</target>

<target name="xtestLocalChangelogStartTag">
<mkdir dir="${output}"/>
<cvs cvsroot="${cvsroot}" package="antmodule3" dest="${output}"/>
<cvschangelog dir="${output}/antmodule3"
remote="false" startTag="testtag1"
destfile="${output}/report.xml"/>
<au:assertFileExists file="${output}/report.xml"/>
<au:assertResourceContains resource="${output}/report.xml"
value="[yet another test.txt]"/>
</target>

<target name="testLocalChangelogEndTag">
<mkdir dir="${output}"/>
<cvs cvsroot="${cvsroot}" package="antmodule3" dest="${output}"/>
<cvschangelog dir="${output}/antmodule3"
remote="false" endTag="testtag2"
destfile="${output}/report.xml"/>
<au:assertFileExists file="${output}/report.xml"/>
<au:assertResourceContains resource="${output}/report.xml"
value="[yet another test.txt]"/>
</target>

<target name="testLocalChangelogWithTags">
<mkdir dir="${output}"/>
<cvs cvsroot="${cvsroot}" package="antmodule3" dest="${output}"/>
<cvschangelog dir="${output}/antmodule3"
remote="false" endTag="testtag2" startTag="testtag1"
destfile="${output}/report.xml"/>
<au:assertFileExists file="${output}/report.xml"/>
<au:assertResourceContains resource="${output}/report.xml"
value="[yet another test.txt]"/>
</target>

<target name="testCvsWithSpaceInModule">
<mkdir dir="${output}"/>
<cvs cvsroot="${cvsroot}" dest="${output}">


+ 24
- 0
src/tests/antunit/taskdefs/cvs/repository/CVSROOT/history View File

@@ -28,3 +28,27 @@ O48f8a764|stefan|/tmp/testoutput/*0|ant module 2||ant module 2
O48f8a766|stefan|/tmp/testoutput/*0|antmodule1||antmodule1
O48f8abf0|stefan|/tmp/testoutput/*0|ant module 2||ant module 2
O48f8abf2|stefan|/tmp/testoutput/*0|antmodule1||antmodule1
O48f8ad8b|stefan|~/ASF/ant/ant-HEAD/*0|antmodule3||antmodule3
M48f8add7|stefan|~/ASF/ant/ant-HEAD/*0|antmodule3|1.2|yet another test.txt
O48f8ae09|stefan|/tmp/testoutput/*0|ant module 2||ant module 2
O48f8ae0a|stefan|/tmp/testoutput/*0|antmodule1||antmodule1
O48f8b07c|stefan|/tmp/testoutput/*0|antmodule3||antmodule3
O48f8b07d|stefan|/tmp/testoutput/*0|antmodule3||antmodule3
O48f8b07e|stefan|/tmp/testoutput/*0|antmodule1||antmodule1
O48f8b07f|stefan|/tmp/testoutput/*0|antmodule3||antmodule3
O48f8b082|stefan|/tmp/testoutput/*0|ant module 2||ant module 2
O48f8b141|stefan|/tmp/testoutput/*0|antmodule3||antmodule3
O48f8b14c|stefan|/tmp/testoutput/*0|antmodule3||antmodule3
O48f8b1c3|stefan|/tmp/testoutput/*0|antmodule3||antmodule3
O48f8b1cd|stefan|/tmp/testoutput/*0|antmodule3||antmodule3
O48f8b20c|stefan|/tmp/testoutput/*0|antmodule3||antmodule3
O48f8b217|stefan|/tmp/testoutput/*0|antmodule3||antmodule3
O48f8b301|stefan|/tmp/testoutput/*0|antmodule3||antmodule3
O48f8b302|stefan|/tmp/testoutput/*0|antmodule1||antmodule1
O48f8b303|stefan|/tmp/testoutput/*0|antmodule3||antmodule3
O48f8b307|stefan|/tmp/testoutput/*0|ant module 2||ant module 2
O48f8b308|stefan|/tmp/testoutput/*0|antmodule3||antmodule3
O48f8b328|stefan|/tmp/testoutput/*0|antmodule3||antmodule3
O48f8b329|stefan|/tmp/testoutput/*0|antmodule1||antmodule1
O48f8b32b|stefan|/tmp/testoutput/*0|ant module 2||ant module 2
O48f8b32c|stefan|/tmp/testoutput/*0|antmodule3||antmodule3

+ 2
- 0
src/tests/antunit/taskdefs/cvs/repository/CVSROOT/val-tags View File

@@ -0,0 +1,2 @@
testtag1 y
testtag2 y

+ 35
- 16
src/tests/antunit/taskdefs/cvs/repository/antmodule3/yet another test.txt,v View File

@@ -1,35 +1,54 @@
head 1.1;
branch 1.1.1;
access ;
symbols start:1.1.1.1 ant:1.1.1;
locks ; strict;
comment @# @;

head 1.2;
access;
symbols
testtag2:1.2
testtag1:1.1.1.1
start:1.1.1.1
ant:1.1.1;
locks; strict;
comment @# @;


1.2
date 2008.10.17.15.23.03; author stefan; state Exp;
branches;
next 1.1;
commitid 7ddc48f8add74567;

1.1
date 2008.10.16.14.51.11; author stefan; state Exp;
branches 1.1.1.1;
next ;
commitid 7f8d48f754df4567;
date 2008.10.16.14.51.11; author stefan; state Exp;
branches
1.1.1.1;
next ;
commitid 7f8d48f754df4567;

1.1.1.1
date 2008.10.16.14.51.11; author stefan; state Exp;
branches ;
next ;
commitid 7f8d48f754df4567;
date 2008.10.16.14.51.11; author stefan; state Exp;
branches;
next ;
commitid 7f8d48f754df4567;


desc
@@


1.2
log
@update weather report
@
text
@dark and cloudy.
a bit brighter today.
@


1.1
log
@Initial revision
@
text
@dark and cloudy.
@d2 1
@




Loading…
Cancel
Save