On Tue, May 04, 2010 at 09:45:44AM -0000, hwri...@apache.org wrote: > Author: hwright > Date: Tue May 4 09:45:43 2010 > New Revision: 940786 > > URL: http://svn.apache.org/viewvc?rev=940786&view=rev > Log: > Add a callback to the public patch API, to allow consumers to collect > information about the patch targets. This replaces the reject_tempfiles > and patched_tempfiles return parameters. > > * subversion/tests/libsvn_client/client-test.c > (patch_collection_baton, patch_collection_func): New. > (test_patch): Use the baton to collect the tested information. > > * subversion/svn/patch-cmd.c > (svn_cl__patch): Remove the tempfiles, and don't implement a patch callback. > > * subversion/include/svn_client.h > (svn_client_patch_func_t): New. > (svn_client_patch): Remove the output hashes, and add a callback and baton. > > * subversion/libsvn_client/patch.c > (init_patch_target): Pass through the REMOVE_TEMPFILES param. > (apply_one_patch): Adjust parameters, and call the callback, where > appropriate. > (apply_patches_baton_t): Adjust members to refer to the updated parameters. > (apply_patches): Pass through parameters to apply_one_patch(). > (svn_client_patch): Set the updated baton parameters. > > Modified: > subversion/trunk/subversion/include/svn_client.h > subversion/trunk/subversion/libsvn_client/patch.c > subversion/trunk/subversion/svn/patch-cmd.c > subversion/trunk/subversion/tests/libsvn_client/client-test.c > > Modified: subversion/trunk/subversion/include/svn_client.h > URL: > http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_client.h?rev=940786&r1=940785&r2=940786&view=diff > ============================================================================== > --- subversion/trunk/subversion/include/svn_client.h (original) > +++ subversion/trunk/subversion/include/svn_client.h Tue May 4 09:45:43 2010 > @@ -4833,6 +4833,25 @@ svn_client_info(const char *path_or_url, > */ > > /** > + * The callback invoked by svn_client_patch(). For each patch target, > + * call this function for @a local_abspath, and return the @a patch_abspath > + * and @a reject_abspath. Neither @a patch_abspath or @a reject_abspath are > + * guaranteed to exist (depending on the @a remove_tempfiles parameter for > + * svn_client_patch() ).
What is the reason for the remove_tempfiles parameter? Do you envision the callback to be used for additional tasks in the future? Why not just drop the remove_tempfiles parameter and clean up the tempfiles if the caller passes NULL for the callback? Stefan