Re: svn commit: r1470904 - /subversion/trunk/subversion/libsvn_wc/wc-metadata.sql
From: Paul Burba <ptburba_at_gmail.com>
Date: Thu, 25 Apr 2013 15:38:21 -0400
On Thu, Apr 25, 2013 at 1:05 PM, Philip Martin
My mistake Philip, you are quite right about the cache not being
1.9.0-dev_at_1475809>cd wc-non-root
1.9.0-dev_at_1475809>svn st
1.9.0-dev_at_1475809>svn upgrade
# Note that all the INHERITED_PROPS fields are null:
1.9.0-dev_at_1475809>sqlite3 .svn\wc.db
# Turns out, that once we update, the missing cache is created and populated:
1.9.0-dev_at_1475809>svn up
1.9.0-dev_at_1475809>sqlite3 .svn\wc.db
However the fact that the missing empty cache is created and populated
Index: subversion/libsvn_wc/wc-metadata.sql
/* ------------------------------------------------------------------------- */
--
Paul T. Burba
CollabNet, Inc. -- www.collab.net -- Enterprise Cloud Development
Skype: ptburba
[1] See libsvn_client/iprops.c:get_inheritable_props():
/* The real implementation of svn_client__get_inheritable_props */
static svn_error_t *
get_inheritable_props(apr_hash_t **wcroot_iprops,
const char *local_abspath,
svn_revnum_t revision,
svn_depth_t depth,
svn_ra_session_t *ra_session,
svn_client_ctx_t *ctx,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
apr_hash_t *iprop_paths;
apr_hash_index_t *hi;
apr_pool_t *iterpool = svn_pool_create(scratch_pool);
apr_pool_t *session_pool = NULL;
*wcroot_iprops = apr_hash_make(result_pool);
SVN_ERR_ASSERT(SVN_IS_VALID_REVNUM(revision));
/* If we don't have a base revision for LOCAL_ABSPATH then it can't
possibly be a working copy root, nor can it contain any WC roots
in the form of switched subtrees. So there is nothing to cache. */
SVN_ERR(svn_wc__get_cached_iprop_children(&iprop_paths, depth,
ctx->wc_ctx, local_abspath,
scratch_pool, iterpool));
/* If we are in the midst of a checkout or an update that is bringing in
an external, then svn_wc__get_cached_iprop_children won't return
LOCAL_ABSPATH in IPROPS_PATHS because the former has no cached iprops
yet. So make sure LOCAL_ABSPATH is present if it's a WC root. */
We enter this block when we update the WC root
VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
if (!svn_hash_gets(iprop_paths, local_abspath))
{
svn_boolean_t needs_cached_iprops;
SVN_ERR(need_to_cache_iprops(&needs_cached_iprops, local_abspath,
ra_session, ctx, iterpool));
if (needs_cached_iprops)
{
const char *target_abspath = apr_pstrdup(scratch_pool,
local_abspath);
/* As value we set TARGET_ABSPATH, but any string besides ""
would do */
svn_hash_sets(iprop_paths, target_abspath, target_abspath);
}
}
Received on 2013-04-25 21:38:52 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.