On Fri, May 6, 2011 at 07:14, <rhuijben_at_apache.org> wrote:
>
> Author: rhuijben
> Date: Thu May 5 23:14:16 2011
> New Revision: 1099992
>
> URL: http://svn.apache.org/viewvc?rev=1099992&view=rev
> Log:
> Resolve issue #3314, by adding a similar copy source exist check for not
> present nodes as was added to the normal commit handling in r1099411.
>
> Also enable notifications for these svn cp DIR URL operations.
> The primary reason why notifications weren't enabled earlier was that we
> couldn't handle notifications for absolute paths... And for 1.7 most
> notifications are absolute paths.
>
> * subversion/libsvn_client/commit_util.c
> (harvest_committables): Add check_url_func and baton to arguments.
> When we find a not present node in copy mode, check if we should really
> add a delete operation via the check_func.
> Pass SVN_INVALID_REV as the base revision in copy mode, as the url
> where we copy to doesn't exist yet.
> (svn_client__harvest_committables,
> harvest_copy_committables): Update caller.
> (svn_client__condense_commit_items): Switch debug code to using SVN_DBG()
> to make it usable from the test suite.
>
> * subversion/libsvn_client/copy.c
> (check_url_kind_baton): New struct.
> (check_url_kind): New function.
> (wc_to_repos_copy): Provide check_url_kind to harvesting.
> (repos_to_wc_copy_single): Unhook notification handler on error conditions.
>
> * subversion/svn/cl.h
> (svn_cl__notifier_mark_wc_to_repos_copy): New function.
>
> * subversion/svn/copy-cmd.c
> (svn_cl__copy): Handle todo by calling svn_cl__notifier_mark_wc_to_repos_copy
> instead of clearing the notify function for wc to url copies.
>
> * subversion/svn/notify.c
> (notify_baton): Add boolean.
> (notify): Add 'copy of' when committing to a different url.
> (svn_cl__notifier_mark_wc_to_repos_copy): New function.
>
> * subversion/tests/cmdline/copy_tests.py
> (wc_copy_parent_into_child): Update expected output.
> (copy_wc_url_with_absent): Remove XFail marker.
>
> Modified:
> subversion/trunk/subversion/libsvn_client/commit_util.c
> subversion/trunk/subversion/libsvn_client/copy.c
> subversion/trunk/subversion/svn/cl.h
> subversion/trunk/subversion/svn/copy-cmd.c
> subversion/trunk/subversion/svn/notify.c
> subversion/trunk/subversion/tests/cmdline/copy_tests.py
>
In subversion/trunk/subversion/svn/notify.c, these changes make messages
not translatable:
> if ((err = svn_cmdline_printf(pool,
> - _("Sending %s\n"),
> + _("Sending %s %s\n"),
> + nb->is_wc_to_repos_copy
> + ? _("copy of") : "",
> path_local)))
> goto print_error;
> break;
> @@ -694,21 +697,27 @@ notify(void *baton, const svn_wc_notify_
> if (n->mime_type && svn_mime_type_is_binary(n->mime_type))
> {
> if ((err = svn_cmdline_printf(pool,
> - _("Adding (bin) %s\n"),
> + _("Adding %s (bin) %s\n"),
> + nb->is_wc_to_repos_copy
> + ? _("copy of") : "",
> path_local)))
> goto print_error;
> }
> else
> {
> if ((err = svn_cmdline_printf(pool,
> - _("Adding %s\n"),
> + _("Adding %s %s\n"),
> + nb->is_wc_to_repos_copy
> + ? _("copy of") : "",
> path_local)))
> goto print_error;
> }
> break;
>
> case svn_wc_notify_commit_deleted:
> - if ((err = svn_cmdline_printf(pool, _("Deleting %s\n"),
> + if ((err = svn_cmdline_printf(pool, _("Deleting %s %s\n"),
> + nb->is_wc_to_repos_copy
> + ? _("copy of") : "",
> path_local)))
> goto print_error;
> break;
> @@ -716,7 +725,9 @@ notify(void *baton, const svn_wc_notify_
> case svn_wc_notify_commit_replaced:
> case svn_wc_notify_commit_copied_replaced:
> if ((err = svn_cmdline_printf(pool,
> - _("Replacing %s\n"),
> + _("Replacing %s %s\n"),
> + nb->is_wc_to_repos_copy
> + ? _("copy of") : "",
> path_local)))
--
Dongsheng
Received on 2011-07-22 07:19:33 CEST