</tar>
<delete file="${patch.file}.tmp"/>
</target>
+
+ <target name="apply"
+ description="apply patch.tar.gz files generated by patchpackage">
+
+ <!--
+ extract patch.tar.gz to svn working copy
+ $ tar xvzf patch.tar.gz
+ -->
+ <echo message="extracting ${patch.file} to working copy"/>
+ <untar src="${patch.package}"
+ dest="."
+ failOnEmptyArchive="true"
+ compression="gzip">
+ </untar>
+
+ <!--
+ Apply the changes from patch.txt
+ $ svn patch patch.txt
+ -->
+ <echo message="svn patch ${patch.file}"/>
+ <fail unless="svn.found" message="You need a version of svn to create the patch"/>
+ <exec executable="svn">
+ <arg value="patch"/>
+ <arg value="${patch.file}"/>
+ </exec>
+ <delete file="${patch.file}"/>
+
+ <!--
+ get a list of all new files in patch.tar.gz and store in tar.file.list filelist
+ $ tar -tf patch.tar.gz | grep -v patch.txt | xargs svn add
+ -->
+ <echo message="Getting ${patch.file} file list"/>
+ <delete dir="${patch.package}.tmp" quiet="false" failonerror="false" />
+ <untar src="${patch.package}"
+ dest="${patch.package}.tmp"
+ failOnEmptyArchive="true"
+ compression="gzip">
+ </untar>
+ <fileset dir="${patch.package}.tmp"
+ id="tar.file.list"
+ excludes="${patch.file}"/>
+
+ <!-- add new files -->
+ <echo message="Adding new files to svn working copy"/>
+ <apply executable="svn"
+ relative="true">
+ <arg value="add"/>
+ <fileset refid="tar.file.list"/>
+ </apply>
+
+ <delete dir="${patch.package}.tmp"/>
+
+ </target>
</project>