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

Reply via email to