Author: bodewig
Date: Wed Oct 21 18:50:28 2009
New Revision: 828141
URL: http://svn.apache.org/viewvc?rev=828141&view=rev
Log:
tar doesn't always recognize the target isn't up to date. PR 48035
Modified:
ant/core/trunk/WHATSNEW
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Tar.java
ant/core/trunk/src/tests/antunit/taskdefs/tar-test.xml
Modified: ant/core/trunk/WHATSNEW
URL:
http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?rev=828141&r1=828140&r2=828141&view=diff
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Wed Oct 21 18:50:28 2009
@@ -507,6 +507,11 @@
long file names in GNU longfile mode.
Bugzilla Report 47653.
+ * The tar task failed to recognize that the archive had to be
+ (re-)created in some cases where the sources are filesystem based
+ resources but not filesets.
+ Bugzilla Report 48035.
+
Other changes:
--------------
Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Tar.java
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Tar.java?rev=828141&r1=828140&r2=828141&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Tar.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Tar.java Wed Oct 21
18:50:28 2009
@@ -581,9 +581,13 @@
Vector files = (Vector) basedirToFilesMap.get(base);
if (files == null) {
files = new Vector();
- basedirToFilesMap.put(base, new Vector());
+ basedirToFilesMap.put(base, files);
+ }
+ if (base == Copy.NULL_FILE_PLACEHOLDER) {
+ files.add(r.getFile().getAbsolutePath());
+ } else {
+ files.add(r.getName());
}
- files.add(r.getName());
}
iter = basedirs.iterator();
while (iter.hasNext()) {
Modified: ant/core/trunk/src/tests/antunit/taskdefs/tar-test.xml
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/tests/antunit/taskdefs/tar-test.xml?rev=828141&r1=828140&r2=828141&view=diff
==============================================================================
--- ant/core/trunk/src/tests/antunit/taskdefs/tar-test.xml (original)
+++ ant/core/trunk/src/tests/antunit/taskdefs/tar-test.xml Wed Oct 21 18:50:28
2009
@@ -22,6 +22,7 @@
<import file="../antunit-base.xml" />
<target name="setUp">
+ <mkdir dir="${input}" />
<mkdir dir="${output}" />
</target>
@@ -72,4 +73,21 @@
</cond:resourceexists>
</au:assertFalse>
</target>
+
+ <target name="testSingleFile" depends="setUp"
+
description="https://issues.apache.org/bugzilla/show_bug.cgi?id=48035">
+ <touch file="${input}/foo.txt"/>
+ <tar destfile="${output}/foo.tar">
+ <file file="${input}/foo.txt"/>
+ </tar>
+ <au:assertFileExists file="${output}/foo.tar"/>
+ <copy file="${output}/foo.tar" tofile="${output}/bar.tar"
+ preservelastmodified="true"/>
+ <sleep seconds="2"/>
+ <touch file="${input}/foo.txt"/>
+ <tar destfile="${output}/foo.tar">
+ <file file="${input}/foo.txt"/>
+ </tar>
+ <au:assertDestIsOutofdate src="${output}/foo.tar"
dest="${output}/bar.tar"/>
+ </target>
</project>