git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@705646 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -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 | |||
| ============================================= | |||
| @@ -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> | |||
| @@ -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); | |||
| } | |||
| } | |||
| /** | |||
| @@ -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}"> | |||
| @@ -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 | |||
| @@ -0,0 +1,2 @@ | |||
| testtag1 y | |||
| testtag2 y | |||
| @@ -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 | |||
| @ | |||