[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r1100349 - in /subversion/trunk/subversion: libsvn_client/cleanup.c libsvn_wc/cleanup.c

From: Greg Stein <gstein_at_gmail.com>
Date: Fri, 6 May 2011 16:10:26 -0400

On May 6, 2011 3:58 PM, <pburba_at_apache.org> wrote:
>
> Author: pburba
> Date: Fri May 6 19:58:05 2011
> New Revision: 1100349
>
> URL: http://svn.apache.org/viewvc?rev=1100349&view=rev
> Log:
> Follow-up to r1100321, move error for issue #3858 from libsvn_wc to
> libsvn_client.

3858 or 3835?

(per reverted comment)

>
> Suggested by: cmpilato
>
> * subversion/libsvn_wc/cleanup.c
>
> (cleanup_internal): Revert r1100321 and move that logic to...
>
> * subversion/libsvn_client/cleanup.c
>
> (svn_client_cleanup): ...here. Also improve the error message wording a
> bit and convert the WC root path in the message to the local style (as
> suggested by gstein).
>
> Modified:
> subversion/trunk/subversion/libsvn_client/cleanup.c
> subversion/trunk/subversion/libsvn_wc/cleanup.c
>
> Modified: subversion/trunk/subversion/libsvn_client/cleanup.c
> URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/cleanup.c?rev=1100349&r1=1100348&r2=1100349&view=diff
>
==============================================================================
> --- subversion/trunk/subversion/libsvn_client/cleanup.c (original)
> +++ subversion/trunk/subversion/libsvn_client/cleanup.c Fri May 6
19:58:05 2011
> @@ -59,6 +59,24 @@ svn_client_cleanup(const char *path,
>
> err = svn_wc_cleanup3(ctx->wc_ctx, local_abspath, ctx->cancel_func,
> ctx->cancel_baton, scratch_pool);
> + if (err && err->apr_err == SVN_ERR_WC_LOCKED)
> + {
> + const char *wcroot_abspath;
> + svn_error_t *err2 = svn_wc_get_wc_root(&wcroot_abspath,
ctx->wc_ctx,
> + local_abspath, scratch_pool,
> + scratch_pool);
> + if (err2)
> + err = svn_error_compose_create(err, err2);
> + else
> + err = svn_error_createf(SVN_ERR_WC_LOCKED, err,
> + _("Working copy locked; trying running "
> + "'svn cleanup' on the root of the
working "
> + "copy (%s) instead."),
> + svn_dirent_local_style(wcroot_abspath,
> + scratch_pool),
> + scratch_pool);
> + }
> +
> svn_io_sleep_for_timestamps(path, scratch_pool);
> return svn_error_return(err);
> }
>
> Modified: subversion/trunk/subversion/libsvn_wc/cleanup.c
> URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/cleanup.c?rev=1100349&r1=1100348&r2=1100349&view=diff
>
==============================================================================
> --- subversion/trunk/subversion/libsvn_wc/cleanup.c (original)
> +++ subversion/trunk/subversion/libsvn_wc/cleanup.c Fri May 6 19:58:05
2011
> @@ -142,32 +142,13 @@ cleanup_internal(svn_wc__db_t *db,
> {
> int wc_format;
> const char *cleanup_abspath;
> - svn_error_t *err;
>
> /* Can we even work with this directory? */
> SVN_ERR(can_be_cleaned(&wc_format, db, dir_abspath, scratch_pool));
>
> - /* Issue #3835: If DIR_ABSPATH is locked indirectly via a recursive
lock
> - on an ancestor, then recommend cleaning up the entire WC. */
> - err = svn_wc__db_wclock_obtain(db, dir_abspath, -1, TRUE,
scratch_pool);
> - if (err)
> - {
> - if (err->apr_err == SVN_ERR_WC_LOCKED)
> - {
> - const char *wcroot_abspath;
> - svn_error_t *err2 = svn_wc__db_get_wcroot(&wcroot_abspath, db,
> - dir_abspath,
> - scratch_pool,
> - scratch_pool);
> - if (err2)
> - return svn_error_compose_create(err, err2);
> -
> - return svn_error_createf(SVN_ERR_WC_LOCKED, err,
> - _("Try cleanup from root of working
copy "
> - "'%s'"), wcroot_abspath,
scratch_pool);
> - }
> - return svn_error_return(err);
> - }
> + /* ### This fails if ADM_ABSPATH is locked indirectly via a
> + ### recursive lock on an ancestor. */
> + SVN_ERR(svn_wc__db_wclock_obtain(db, dir_abspath, -1, TRUE,
scratch_pool));
>
> /* Run our changes before the subdirectories. We may not have to recurse
> if we blow away a subdir. */
>
>
Received on 2011-05-06 22:10:54 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.