"Schmidt, Michael" <michael.schm...@mevis.fraunhofer.de> writes:

> This patch only fixes the missing notification of starting to export
> externals. It does not address the second part of issue #4527, which
> is the premature reset of the in_external flag in the case of nested
> externals, which also affects checkouts. To me it seems that the best
> option for fixing that issue would be to turn the bool flag into a
> counter which keeps track of the "stack deptch" of externals, but I am
> not totally sure about how this affects the ABI and whether there
> might be better ways of fixing this. Any comments/ideas?

The in_external flag is local to svn/notify.c so there is no ABI
problem.  Making it into a counter sounds like the right way to fix the
problem.


> Index: subversion/libsvn_client/externals.c
> ===================================================================
> --- subversion/libsvn_client/externals.c      (revision 1638837)
> +++ subversion/libsvn_client/externals.c      (working copy)
> @@ -1188,6 +1188,17 @@ svn_client__export_externals(apr_hash_t *externals
>                                                                   
> sub_iterpool),
>                                                sub_iterpool));
>  
> +          /* First notify that we're about to handle an external. */
> +          if (ctx->notify_func2)
> +          {
> +            (*ctx->notify_func2)(
> +              ctx->notify_baton2,
> +              svn_wc_create_notify(item_abspath,
> +              svn_wc_notify_update_external,
> +              sub_iterpool),
> +              sub_iterpool);
> +          }
> +
>            SVN_ERR(wrap_external_error(
>                            ctx, item_abspath,
>                            svn_client_export5(NULL, new_url, item_abspath,

The indentation is wrong, it should be more like:

+          /* First notify that we're about to handle an external. */
+          if (ctx->notify_func2)
+            {
+              (*ctx->notify_func2)(
+                ctx->notify_baton2,
+                svn_wc_create_notify(item_abspath,
+                                     svn_wc_notify_update_external,
+                                     sub_iterpool),
+                sub_iterpool);
+            }

I noticed the existing code was using a mix of styles:

   (*ctx->notify_func2)(...)
   (ctx->notify_func2)(...)
   ctx->notify_func2(...)

I've changed them all to the last form.

-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*

Reply via email to