Paul Burba <ptbu...@gmail.com> writes:

> Index: subversion/libsvn_client/copy.c
> ===================================================================
> --- subversion/libsvn_client/copy.c   (revision 1292379)
> +++ subversion/libsvn_client/copy.c   (working copy)
> @@ -1519,6 +1519,17 @@
>          ctx->notify_baton2 = old_notify_baton2;
>  
>          SVN_ERR(err);
> +
> +#ifdef WIN32
> +        if (!ignore_externals)
> +          {
> +            /* Issue #4123: We may still hold file handles to the databases
> +               for externals under TMP_ABSPATH.  We need to release these
> +               handles before we move TMP_ABSPATH below or Windows will
> +               raise an ERROR_ACCESS_DENIED error. */
> +            SVN_ERR(svn_wc__externals_close(tmp_abspath, ctx->wc_ctx, pool));
> +          }
> +#endif

I'm not sure why this would be windows specific.  Yes, Linux lets us
move the dir with the handle open but I think it would be an error for
the Subversion client to use the handle after the move.

Is this the best way to do it?  It isn't what I was expecting.  I was
expecting the checkout code to explicitly close the handles it was
responsible for opening.  Then the copy code would not have to do
anything special.

-- 
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com

Reply via email to