diff options
Diffstat (limited to 'patch.xml')
-rw-r--r-- | patch.xml | 53 |
1 files changed, 53 insertions, 0 deletions
@@ -71,5 +71,58 @@ </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> |