You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Madan US <ma...@collab.net> on 2005/05/20 18:30:58 UTC

[PATCH] V2 Partial Fix for Issue #443: post-commit hook script (error) output lost

Yet to be done :
1. XML escaping for the post-commit hook's stderr
2. Test case for testing XML escaping
3. Test case for commands like mv, cp etc., which do implicit commit

[[[
   Partial Fix for Issue #443: post-commit hook script (error) output lost

   * subversion/libsvn_ra/wrapper_template.h
     (compat_get_commit_editor): Changed to use svn_commit_callback2_t

   * subversion/libsvn_ra/ra_loader.c
     (svn_ra_get_commit_editor2): New version of svn_ra_get_commit_editor
     which takes svn_commit_callback2_t as the callback type

   * subversion/libsvn_ra/ra_loader.h
     (svn_ra__vtable_t): Using svn_commit_callback2_t instead of
     svn_commit_callback2_t for get_commit_editor.

   * subversion/include/svn_repos.h
     (svn_repos_get_commit_editor3): New version of
     svn_repos_get_commit_editor2, which takes svn_commit_callback2_t
     as the callback type
     (svn_repos_get_commit_editor2): Deprecated

   * subversion/include/svn_types.h
     (svn_commit_callback2_t): New version of svn_commit_callback_t
     with a new parameter post_commit_err.
     (svn_commit_callback_t): Deprecated.

   * subversion/include/svn_client.h
     (svn_client_commit_info2_t): New version of
     svn_client_commit_info_t now containing the post_commit_err
     parameter to hold the post-commit hook's stderr
     (svn_client_commit_info_t): Deprecated
     (svn_client_mkdir2): New version of svn_client_mkdir now taking
     svn_client_commit_info2_t as the commit_info type
     (svn_client_mkdir): Deprecated
     (svn_client_delete2): New version of svn_client_delete
     which now takes svn_client_commit_info2_t as commit_info type
     (svn_client_delete): Deprecated
     (svn_client_import2): New version of svn_client_import
     which now takes svn_client_commit_info2_t as type for
     the commit_info parameter.
     (svn_client_import): Deprecated
     (svn_client_commit3): New version of svn_client_commit
     which now takes svn_client_commit_info2_t for commit_info
     (svn_client_commit2): Deprecated
     (svn_client_copy2): New version of svn_client_copy which now takes
     svn_client_commit_info2_t as the commit_info type.
     (svn_client_copy): Deprecated.
     (svn_client_move3): New version of svn_client_move but now
     uses svn_client_commit_info2_t for the commit_info parameter type
     (svn_client_move2): Deprecated

   * subversion/include/svn_ra.h
     (svn_ra_get_commit_editor2): New version of svn_ra_get_commit_editor
     which takes svn_commit_callback2_t as the callback type
     (svn_ra_get_commit_editor): Deprecated
     (svn_ra_plugin_t): Changed to take svn_commit_callback2_t
     as parameter for get_commit_editor.

   * subversion/libsvn_ra_local/ra_plugin.c
     (deltify_etc_baton): Now takes svn_commit_callback2_t for callback
     (deltify_etc): Now takes an extra parameter - post_commit_err
     and passes it on to the callback.
     (svn_ra_local__get_commit_editor): Now takes svn_commit_callback2_t
     for the callback parameter. Also call svn_repos_get_commit_editor3
     instead of svn_repos_get_commit_editor2

   * subversion/libsvn_client/delete.c
     (delete_urls2): New version of delete_urls which uses
     svn_client_commit_info2_t as commit_info type, thus making is
     post-commit hook's stderr aware.
     (svn_client_delete2): New version of svn_client_delete
     now using svn_client_commit_info2_t as commit_info type.

   * subversion/libsvn_client/client.h
     (svn_client__commit_get_baton2): New version of
     svn_client__commit_get_baton, which takes svn_client_commit_info2_t
     as the type for the info parameter.
     (svn_client__commit_get_baton): Deprecated.
     (svn_client__commit_callback2): New version of
     svn_client__commit_callback, now providing for the stderr output
     of the post-commit hook.
     (svn_client__commit_callback): Deprecated

   * subversion/libsvn_client/copy.c
     (repos_to_repos_copy2): New version of repos_to_repos_copy
     svn_client_commit_info2_t for commit_info.
     (repos_to_repos_copy): Deprecated
     (wc_to_repos_copy2): New version of
     wc_to_repos_copy, which takes svn_client_commit_info2_t as
     commit_info type.
     (wc_to_repos_copy): Deprecated
     (setup_copy2): New version of setup_copy, but now takes
     svn_client_commit_info2_t as commit_info type.
     (setup_copy): Deprecated
     (svn_client_copy2): New version of svn_client_copy which now
     takes svn_client_commit_info2_t for the commit_info parameter.
     (svn_client_copy): Deprecated
     (svn_client_move3): New version of svn_client_move2 which now
     takes svn_client_commit_info2_t for the commit_info parameter.
     (svn_client_move2): Deprecated

   * subversion/libsvn_client/commit_util.c
     (commit_baton2): New version of commit_baton using
     svn_client_commit_info2_t for the info type.
     (commit_baton): Deprecated
     (svn_client__commit_get_baton2): New version of
     svn_client__commit_get_baton, which takes svn_client_commit_info2_t
     as the info type
     (svn_client__commit_get_baton): Deprecated
     (svn_client__commit_callback2): New version of
     svn_client__commit_callback, which takes the post_commit_err
     parameter.

   * subversion/libsvn_client/commit.c
     (get_ra_editor2): New version of get_ra_editor, but is aware of
     the post-commit hook's stderr. Takes svn_client_commit_info2_t
     as parameter and calls svn_client__commit_get_baton2 and
     svn_ra_get_commit_editor2.
     (get_ra_editor): Deprecated.
     (svn_client_import2): New version of svn_client_import
     using svn_client_commit_info2_t for the commit_info parameter.
     This new function is post-commit hook's stderr aware.
     (svn_client_commit3): New version of svn_client_commit
     using svn_client_commit_info2_t, and calling other functions
     that passback the post-commit hook's stderr.

   * subversion/libsvn_client/add.c
     (mkdir_urls2): New version of mkdir_urls. Here, the commit_info
     parameter is of type svn_client_commit_info2_t and calls the
     svn_client__commit_get_baton2 and svn_ra_get_commit_editor2, thus
     making this aware of the post-commit hook's stderr.
     (mkdir_urls): Deprecated
     (svn_client_mkdir2): New version of svn_client_mkdir
     using svn_client_commit_info2_t for the commit_info parameter
     (svn_client_mkdir): Deprecated

   * subversion/mod_dav_svn/merge.c
     (svn_xml.h): New header #included.
     (dav_svn__merge_response2): Takes the @a post_commit_err parameter
     and forms necessary xml content, if this parameter is NOT NULL.
     (dav_svn__merge_response): Deprecated, modified to call
     dav_svn__merge_response2, with the @a post_commit_err as NULL.

   * subversion/mod_dav_svn/dav_svn.h
     (dav_svn__merge_response2): New version of dav_svn__merge_response
     that takes the post_commit_err parameter
     (dav_svn__merge_response): Deprecated.

   * subversion/mod_dav_svn/version.c
     (dav_svn_merge): Modified to handle the post-commit hook's stderr,
     if any and call the dav_svn__merge_response2 function to pass it on.

   * subversion/clients/cmdline/cl.h
     (svn_cl__print_commit_info2): New version of svn_cl__print_commit_info
     which takes svn_client_commit_info2_t for the commit_info parameter.
     (svn_cl__print_commit_info): Deprecated.

   * subversion/clients/cmdline/mkdir-cmd.c
     (svn_cl__mkdir): Modified to use post-commit stderr aware
     datatypes and functions.

   * subversion/clients/cmdline/move-cmd.c
     (svn_cl__move): Modified to use post-commit stderr aware
     datatypes and functions.

   * subversion/clients/cmdline/copy-cmd.c
     (svn_cl__copy): Modified to use post-commit stderr aware
     datatypes and functions.

   * subversion/clients/cmdline/util.c
     (svn_cl__print_commit_info2): New version of svn_cl__print_commit_info
     that displays the post-commit hook's stderr, if any.

   * subversion/clients/cmdline/commit-cmd.c
     (svn_cl__commit): Modified to use post-commit stderr aware
     datatypes and functions.

   * subversion/clients/cmdline/delete-cmd.c
     (svn_cl__delete): Modified to use post-commit stderr aware
     datatypes and functions.

   * subversion/clients/cmdline/import-cmd.c
     (svn_cl__import): Modified to use post-commit stderr aware
     datatypes and functions.

   * subversion/tests/clients/cmdline/commit_tests.py
     (post_commit_hook_test): Added new test for post-commit hook's
     stderr testing.
     (test_list): Added post_commit_hook_test to test list.

   * subversion/libsvn_repos/hooks.c
     (svn_repos__hooks_post_commit): Modified to pass TRUE for the
     read_errstream parameter of the run_hook_cmd function.

   * subversion/libsvn_repos/commit.c
     (edit_baton2): New version of the edit_baton data structure
     using svn_commit_callback2_t for callback type.
     (close_edit): Checks if the post-commit hook has returned any stderr
     and if so, pass it on the callback function.
     (svn_repos_get_commit_editor3): New version of
     svn_repos_get_commit_editor2 that takes callback of type
     svn_commit_callback2_t

   * subversion/libsvn_ra_svn/client.c
     (ra_svn_commit_callback_baton_t): Modified to use
     svn_commit_callback2_t for callback type
     (ra_svn_end_commit): Modified to accomodate the post-commit hook's
     stderr if available. If available this is passed on to the callback
     function.
     (ra_svn_commit): Modified to use the svn_commit_callback2_t
     type for the callback parameter.

   * subversion/libsvn_ra_dav/merge.c
     (merge_elements): Added new element to represent the post-commit
     status's stderr.
     (merge_ctx_t): Added new member to hold the post-commit stderr
     if any.
     (validate_element): Modified to understand the post-commit
     stderr (ELEM_post_commit_err ) as a valid tag.
     (end_element): Added case to extract post-commit hook's stderr.
     (svn_ra_dav__merge_activity): Modified to call
     svn_ra_dav__merge_activity2 with post_commit_err as NULL.
     (svn_ra_dav__merge_activity2): Added function to return the
     post-commit hook's stderr if available.

   * subversion/libsvn_ra_dav/ra_dav.h
     (svn_ra_dav__get_commit_editor2): New version of
     svn_ra_dav__get_commit_editor using svn_commit_callback2_t
     as callback type.
     (svn_ra_dav__get_commit_editor): Deprecated.
     (enum): Added enumeration for ELEM_post_commit_err.
     (svn_ra_dav__merge_activity2): New version of
     svn_ra_dav__merge_activity, taking a new post_commit_err parameter.
     (svn_ra_dav__merge_activity): Deprecated.

   * subversion/libsvn_ra_dav/session.c
     (dav_vtable): Modified to use svn_ra_dav__get_commit_editor2.

   * subversion/libsvn_ra_dav/commit.c
     (commit_ctx_t): Now uses svn_commit_callback2_t for callback.
     (commit_close_edit2): New version of commit_close_edit that
     uses svn_ra_dav__merge_activity2 and handles post-commit's
     stderr.
     (commit_close_edit): Deprecated.
     (svn_ra_dav__get_commit_editor2): New version of
     svn_ra_dav__get_commit_editor that uses callback of type
     svn_commit_callback2_t.

   * subversion/svnserve/serve.c
     (commit_callback_baton_t): Added post_commit_err member.
     (commit_done): Added post_commit_err parameter and handling.
     (commit): Extract post-commit's stderr and writes back to the client.
]]]


Re: [PATCH] V2 Partial Fix for Issue #443: post-commit hook script

Posted by Madan US <ma...@collab.net>.
> Madan US wrote:
>>>Madan US wrote:
>>>
>>>>[[[
>>>>   Partial Fix for Issue #443: post-commit hook script (error) output
>>>>   lost
>>>>
>>>
>>>Please begin the log message with a description of what the patch does
>>>(and  why, if that's not obvious).
>>
>> Above is a snip from the description of the issue at
>> subversion.tigris.org... Anyways, I would put in more info hereon.
>
> The few words above indicate what problem this patch addresses, but
> because it  is a "Partial fix" you need to say what this patch does
> towards fixing the problem.
I understand. I will do that. thank you for pointing out.
>
>
>>>I don't think it's acceptable to duplicate several large functions
>>>like this  one just to change two lines in them.  You will have to
>>>find a way to factor  out the common parts.
>>
>> True... I ran out of ideas here... could you pl. suggest an alternate
>> implementation for this one...
>
> Sorry, I don't have time.  Maybe someone else will.

okay, np... I'll give it another try too...
>
>
>>>>+/** @deprecated Provided for backward compatibility.
>>>>+  *
>>>>+  * Similar to wc_to_repos_copy but uses svn_client_commit_info_t +
>>>>* for the @a commit_info parameter.
>>>>+  */
>>>> static svn_error_t *
>>>> wc_to_repos_copy (svn_client_commit_info_t **commit_info,
>>>>                   const char *src_path,
>>>
>>>These comments are inappropriate.  A static function isn't deprecated,
>>>it's  either used or deleted; in this case is it used (by a deprecated
>>>function).  We  only use Doxygen mark-up in public API headers.
>>
>> Yes, so I just leave this uncommented??? How do I say that this has
>> two versions and that the old version should be removed sometime in
>> future?? Pl. advise.
>
> /* Similar to wc_to_repos_copy but uses svn_client_commit_info_t +
>  * for the COMMIT_INFO parameter.
>  */
I will do this. Thanks.
>
> You don't need to say that it should be removed some time in the future
> when it  is no longer used, since that is true for every static
> function, and most  compilers will warn if it is unused.  You could say
> it is a "Helper function  for ..." to give the reader a hint.
>
>>>or  take it as a sign that there may be something wrong
>>>with the patch.
>>
>> Something wrong with the patch??? IMHO, I dont think so... the patch
>> is so
>
> Not functionally, wrong, perhaps, but sylistically wrong.
>
>> big because of deprecating functios thorughout the code ( from one end
>> of the client to the other end of the server ) over all three
>> protocols. Pl. correct me if I'm wrong.
>
> The patch is so big because of duplicating code rather than factoring
> out the  common parts.
I will try my best not to repeat this. Thanks for pointing out.
>
>>>I haven't reviewed your implementation.  I'm glad you're attacking the
>>>problem,  though.
>>
>> Cool, and am happy this patch is getting noticed inspite of the size.
>> Thanks, Julian.
>
> No problem, and sorry if some of what I said sounds a little harsh.
oh, no... not at all...its a learning experience for me. I should thank you
for that. Sometimes, I feel that I have been a little rude in
conversations... apologize if you felt so about any of my statements.

Again, thanks a lot for helping me out.

Regards,
Madan.




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: [PATCH] V2 Partial Fix for Issue #443: post-commit hook script

Posted by Julian Foad <ju...@btopenworld.com>.
Madan US wrote:
>>Madan US wrote:
>>
>>>[[[
>>>   Partial Fix for Issue #443: post-commit hook script (error) output
>>>   lost
>>>
>>
>>Please begin the log message with a description of what the patch does
>>(and  why, if that's not obvious).
> 
> Above is a snip from the description of the issue at
> subversion.tigris.org... Anyways, I would put in more info hereon.

The few words above indicate what problem this patch addresses, but because it 
is a "Partial fix" you need to say what this patch does towards fixing the problem.


>>I don't think it's acceptable to duplicate several large functions like
>>this  one just to change two lines in them.  You will have to find a
>>way to factor  out the common parts.
> 
> True... I ran out of ideas here... could you pl. suggest an alternate
> implementation for this one...

Sorry, I don't have time.  Maybe someone else will.


>>>+/** @deprecated Provided for backward compatibility.
>>>+  *
>>>+  * Similar to wc_to_repos_copy but uses svn_client_commit_info_t +
>>>* for the @a commit_info parameter.
>>>+  */
>>> static svn_error_t *
>>> wc_to_repos_copy (svn_client_commit_info_t **commit_info,
>>>                   const char *src_path,
>>
>>These comments are inappropriate.  A static function isn't deprecated,
>>it's  either used or deleted; in this case is it used (by a deprecated
>>function).  We  only use Doxygen mark-up in public API headers.
> 
> Yes, so I just leave this uncommented??? How do I say that this has two
> versions and that the old version should be removed sometime in future?? Pl.
> advise.

/* Similar to wc_to_repos_copy but uses svn_client_commit_info_t +
  * for the COMMIT_INFO parameter.
  */

You don't need to say that it should be removed some time in the future when it 
is no longer used, since that is true for every static function, and most 
compilers will warn if it is unused.  You could say it is a "Helper function 
for ..." to give the reader a hint.

>>or  take it as a sign that there may be something wrong
>>with the patch.
> 
> Something wrong with the patch??? IMHO, I dont think so... the patch is so

Not functionally, wrong, perhaps, but sylistically wrong.

> big because of deprecating functios thorughout the code ( from one end of
> the client to the other end of the server ) over all three protocols.
> Pl. correct me if I'm wrong.

The patch is so big because of duplicating code rather than factoring out the 
common parts.

>>I haven't reviewed your implementation.  I'm glad you're attacking the
>>problem,  though.
> 
> Cool, and am happy this patch is getting noticed inspite of the size.
> Thanks, Julian.

No problem, and sorry if some of what I said sounds a little harsh.

- Julian

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: [PATCH] V2 Partial Fix for Issue #443: post-commit hook script

Posted by Madan US <ma...@collab.net>.
> Madan US wrote:
>> [[[
>>    Partial Fix for Issue #443: post-commit hook script (error) output
>>    lost
>>
>
> Please begin the log message with a description of what the patch does
> (and  why, if that's not obvious).
Above is a snip from the description of the issue at
subversion.tigris.org... Anyways, I would put in more info hereon.
>
>
>> Index: subversion/include/svn_client.h
>> ===================================================================
>> --- subversion/include/svn_client.h	(revision 14776)
>> +++ subversion/include/svn_client.h	(working copy)
> [...]
>> @@ -653,60 +679,90 @@
>>                  svn_client_ctx_t *ctx,
>>                  apr_pool_t *pool);
>>
>> -/** Create a directory, either in a repository or a working copy. - *
>> - * If @a paths contains URLs, use the authentication baton in @a ctx
>> - * and @a message to immediately attempt to commit the creation of
>> the - * directories in @a paths in the repository.  If the commit
>> succeeds, - * allocate (in @a pool) and populate @a *commit_info.
> [...]
>> +/** @since New in 1.3.
>> +  * Create a directory, either in a repository or a working copy. +
>> *
>> +  * If @a paths contains URLs, use the authentication baton in @a ctx
>> +  * and @a message to immediately attempt to commit the creation of
>> the +  * directories in @a paths in the repository.  If the commit
>> succeeds, +  * allocate (in @a pool) and populate @a *commit_info.
> [...]
>
> Please don't change the indentation.  This is part of the reason why
> this patch  is so big.
mmm... mind of a programmer.... ;-).... doesnt accept something that doesnt
fit his visualization ....;)

>
>
>> Index: subversion/libsvn_client/copy.c
>> ===================================================================
>> --- subversion/libsvn_client/copy.c	(revision 14776)
>> +++ subversion/libsvn_client/copy.c	(working copy)
>> @@ -269,7 +269,235 @@
>>    return SVN_NO_ERROR;
>>  }
>>
>> +/** @since New in 1.3.
>> +  *
>> +  * Now uses svn_client_commit_info2_t which is post-commit
>> +  * hook's stderr aware.
>> +  */
>> +static svn_error_t *
>> +repos_to_repos_copy2 (svn_client_commit_info2_t **commit_info,
>> +                      const char *src_url,
>> +                      const svn_opt_revision_t *src_revision,
>> +                      const char *dst_url,
>> +                      svn_client_ctx_t *ctx,
>> +                      svn_boolean_t is_move,
>> +                      apr_pool_t *pool)
>> +{
> [about 200 lines]
>> +}
>
> I don't think it's acceptable to duplicate several large functions like
> this  one just to change two lines in them.  You will have to find a
> way to factor  out the common parts.
True... I ran out of ideas here... could you pl. suggest an alternate
implementation for this one...
>
>> +/** @deprecated Provided for backward compatibility
>> +  *
>> +  * Similar to repos_to_repos_copy2, but uses
>> svn_client_commit_info_t +  * for @a commit_info type
>> +  */
>>  static svn_error_t *
>>  repos_to_repos_copy (svn_client_commit_info_t **commit_info,
>>                       const char *src_url,
>> @@ -579,6 +807,11 @@
>>
>>
>>
>> +/** @deprecated Provided for backward compatibility.
>> +  *
>> +  * Similar to wc_to_repos_copy but uses svn_client_commit_info_t +
>> * for the @a commit_info parameter.
>> +  */
>>  static svn_error_t *
>>  wc_to_repos_copy (svn_client_commit_info_t **commit_info,
>>                    const char *src_path,
>
> These comments are inappropriate.  A static function isn't deprecated,
> it's  either used or deleted; in this case is it used (by a deprecated
> function).  We  only use Doxygen mark-up in public API headers.
Yes, so I just leave this uncommented??? How do I say that this has two
versions and that the old version should be removed sometime in future?? Pl.
advise.

> "Similar to wc_to_repos_copy"?  ... this is "wc_to_repos_copy".
oops... typo should have been wc_to_repos_copy2.
>
>
> This message was a bit big for the mailing list at 161 KB.  When you
> have a big  patch, please consider making it smaller or posting a URL
> to it instead,
I didnt think of this... would do this henceforth. Sorry for that.

> or  take it as a sign that there may be something wrong
> with the patch.
Something wrong with the patch??? IMHO, I dont think so... the patch is so
big because of deprecating functios thorughout the code ( from one end of
the client to the other end of the server ) over all three protocols.
Pl. correct me if I'm wrong.

>
> I haven't reviewed your implementation.  I'm glad you're attacking the
> problem,  though.
Cool, and am happy this patch is getting noticed inspite of the size.
Thanks, Julian.

Regards,
Madan.




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: [PATCH] V2 Partial Fix for Issue #443: post-commit hook script (error) output lost

Posted by Julian Foad <ju...@btopenworld.com>.
Madan US wrote:
> [[[
>    Partial Fix for Issue #443: post-commit hook script (error) output lost
> 

Please begin the log message with a description of what the patch does (and 
why, if that's not obvious).


> Index: subversion/include/svn_client.h
> ===================================================================
> --- subversion/include/svn_client.h	(revision 14776)
> +++ subversion/include/svn_client.h	(working copy)
[...]
> @@ -653,60 +679,90 @@
>                  svn_client_ctx_t *ctx,
>                  apr_pool_t *pool);
>  
> -/** Create a directory, either in a repository or a working copy.
> - *
> - * If @a paths contains URLs, use the authentication baton in @a ctx
> - * and @a message to immediately attempt to commit the creation of the
> - * directories in @a paths in the repository.  If the commit succeeds,
> - * allocate (in @a pool) and populate @a *commit_info.
[...]
> +/** @since New in 1.3.
> +  * Create a directory, either in a repository or a working copy.
> +  *
> +  * If @a paths contains URLs, use the authentication baton in @a ctx
> +  * and @a message to immediately attempt to commit the creation of the
> +  * directories in @a paths in the repository.  If the commit succeeds,
> +  * allocate (in @a pool) and populate @a *commit_info.
[...]

Please don't change the indentation.  This is part of the reason why this patch 
is so big.


> Index: subversion/libsvn_client/copy.c
> ===================================================================
> --- subversion/libsvn_client/copy.c	(revision 14776)
> +++ subversion/libsvn_client/copy.c	(working copy)
> @@ -269,7 +269,235 @@
>    return SVN_NO_ERROR;
>  }
>  
> +/** @since New in 1.3.
> +  *
> +  * Now uses svn_client_commit_info2_t which is post-commit
> +  * hook's stderr aware.
> +  */
> +static svn_error_t *
> +repos_to_repos_copy2 (svn_client_commit_info2_t **commit_info,
> +                      const char *src_url, 
> +                      const svn_opt_revision_t *src_revision, 
> +                      const char *dst_url, 
> +                      svn_client_ctx_t *ctx,
> +                      svn_boolean_t is_move,
> +                      apr_pool_t *pool)
> +{
[about 200 lines]
> +}

I don't think it's acceptable to duplicate several large functions like this 
one just to change two lines in them.  You will have to find a way to factor 
out the common parts.

> +/** @deprecated Provided for backward compatibility
> +  *
> +  * Similar to repos_to_repos_copy2, but uses svn_client_commit_info_t
> +  * for @a commit_info type
> +  */
>  static svn_error_t *
>  repos_to_repos_copy (svn_client_commit_info_t **commit_info,
>                       const char *src_url, 
> @@ -579,6 +807,11 @@
>  
>  
>  
> +/** @deprecated Provided for backward compatibility.
> +  *
> +  * Similar to wc_to_repos_copy but uses svn_client_commit_info_t
> +  * for the @a commit_info parameter.
> +  */
>  static svn_error_t *
>  wc_to_repos_copy (svn_client_commit_info_t **commit_info,
>                    const char *src_path, 

These comments are inappropriate.  A static function isn't deprecated, it's 
either used or deleted; in this case is it used (by a deprecated function).  We 
only use Doxygen mark-up in public API headers.  "Similar to wc_to_repos_copy"? 
... this is "wc_to_repos_copy".


This message was a bit big for the mailing list at 161 KB.  When you have a big 
patch, please consider making it smaller or posting a URL to it instead, or 
take it as a sign that there may be something wrong with the patch.

I haven't reviewed your implementation.  I'm glad you're attacking the problem, 
though.

- Julian

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org