Author: bodewig
Date: Thu Dec 18 07:47:49 2008
New Revision: 727751
URL: http://svn.apache.org/viewvc?rev=727751&view=rev
Log:
another sync preserveintarget edge case
Modified:
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Sync.java
ant/core/trunk/src/tests/antunit/taskdefs/sync-test.xml
Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Sync.java
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Sync.java?rev=727751&r1=727750&r2=727751&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Sync.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Sync.java Thu Dec 18
07:47:49 2008
@@ -135,6 +135,11 @@
int removedDirCount = 0;
if (!myCopy.getIncludeEmptyDirs()) {
+ if (syncTarget != null
+ && syncTarget.getPreserveEmptyDirs() != Boolean.TRUE) {
+ preservedDirectories.clear();
+ }
+
removedDirCount =
removeEmptyDirectories(toDir, false, preservedDirectories);
} else { // must be syncTarget.preserveEmptydirs == FALSE
Modified: ant/core/trunk/src/tests/antunit/taskdefs/sync-test.xml
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/tests/antunit/taskdefs/sync-test.xml?rev=727751&r1=727750&r2=727751&view=diff
==============================================================================
--- ant/core/trunk/src/tests/antunit/taskdefs/sync-test.xml (original)
+++ ant/core/trunk/src/tests/antunit/taskdefs/sync-test.xml Thu Dec 18 07:47:49
2008
@@ -87,4 +87,34 @@
<au:assertFileDoesntExist file="${output}/b/c"/>
</target>
+ <target name="testPreserveEmptyAndIncludeEmptyFalse" depends="setUp">
+
+ <sync todir="${output}" includeEmptyDirs="false">
+ <fileset dir="${input}"/>
+ <preserveintarget preserveEmptyDirs="false">
+ <include name="**/b/**"/>
+ </preserveintarget>
+ </sync>
+
+ <au:assertFileDoesntExist file="${output}/a/bar.txt"/>
+ <au:assertFileExists file="${output}/a/foo.txt"/>
+ <au:assertFileExists file="${output}/b/baz.txt"/>
+ <au:assertFileDoesntExist file="${output}/b/c"/>
+ </target>
+
+ <target name="testPreserveEmptyAndIncludeEmptyTrue" depends="setUp">
+
+ <sync todir="${output}" includeEmptyDirs="true">
+ <fileset dir="${input}"/>
+ <preserveintarget preserveEmptyDirs="true">
+ <include name="**/b/**"/>
+ </preserveintarget>
+ </sync>
+
+ <au:assertFileDoesntExist file="${output}/a/bar.txt"/>
+ <au:assertFileExists file="${output}/a/foo.txt"/>
+ <au:assertFileExists file="${output}/b/baz.txt"/>
+ <au:assertFileExists file="${output}/b/c"/>
+ </target>
+
</project>