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

Re: svn commit: r922867 - in /subversion/trunk/subversion: include/private/svn_wc_private.h libsvn_client/commit.c libsvn_wc/lock.c

From: Greg Stein <gstein_at_gmail.com>
Date: Wed, 17 Mar 2010 19:14:01 -0400

On Sun, Mar 14, 2010 at 10:36, <philip_at_apache.org> wrote:
>...
> +++ subversion/trunk/subversion/libsvn_wc/lock.c Sun Mar 14 14:36:26 2010
> @@ -1789,8 +1789,19 @@ svn_wc__acquire_write_lock(const char **
> SVN_ERR(svn_wc__db_read_kind(&kind, wc_ctx->db, child_abspath, FALSE,
> iterpool));
> if (kind == svn_wc__db_kind_dir)
> - SVN_ERR(svn_wc__acquire_write_lock(NULL, wc_ctx, child_abspath,
> - NULL, iterpool));
> + {
> + err = svn_wc__acquire_write_lock(NULL, wc_ctx, child_abspath, NULL,
> + iterpool);
> + if (err && err->apr_err == SVN_ERR_WC_LOCKED)
> + {
> + svn_error_t *err2 = svn_wc__release_write_lock(wc_ctx,
> + child_abspath,
> + iterpool);
> + if (err2)
> + svn_error_compose(err, err2);
> + return svn_error_return(err);
> + }
> + }

Lately, we have not been using svn_error_compose(), favoring
svn_error_compose_create() since it Does The Right Thing with the
args, whether they're errors or not. Thus, the above code would
typically be written:

  svn_error_t *err2 = svn_wc__release_write_lock(...);

  return svn_error_return(svn_err_compose_create(err, err2));

Seeing the use of svn_error_compose() is a bit jarring :-P

Cheers,
-g
Received on 2010-03-18 00:14:29 CET

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