Justin Erenkrantz wrote:
> On Dec 5, 2007 12:02 PM, Lieven Govaerts <svnlgo@mobsol.be> wrote:
>> the stress test script is meant to find out Mike's "double free" error
>> during commit. Since you're already solving the switch issue, I'll have
>> a look at a stress test script.
>
> I think the patch below should fix it.
>
> Anyone care to review before I commit? (I'll also write up a log msg too.)
Patch looks good.
One question though, why do we only invalidate version-url for the root
directory? Can we assume that 'all-wc-props' is overwritten for all
child directories?
Unless you're already working on a test, I'll try to make one based on
your scenario.
Lieven
> Thanks. -- justin
>
> Index: subversion/libsvn_ra_serf/update.c
> ===================================================================
> --- subversion/libsvn_ra_serf/update.c (revision 28286)
> +++ subversion/libsvn_ra_serf/update.c (working copy)
> @@ -65,6 +65,9 @@
> NEED_PROP_NAME,
> } report_state_e;
>
> +/* Forward-declare our report context. */
> +typedef struct report_context_t report_context_t;
> +
> /*
> * This structure represents the information for a directory.
> */
> @@ -78,6 +81,9 @@
>
> apr_pool_t *pool;
>
> + /* Pointer back to our original report context. */
> + report_context_t *report_context;
> +
> /* Our name sans any parents. */
> const char *base_name;
>
> @@ -260,7 +266,7 @@
> /*
> * The master structure for a REPORT request and response.
> */
> -typedef struct {
> +struct report_context_t {
> apr_pool_t *pool;
>
> svn_ra_serf__session_t *sess;
> @@ -317,7 +323,7 @@
> /* Are we done parsing the REPORT response? */
> svn_boolean_t done;
>
> -} report_context_t;
> +};
>
>
> /** Report state management helper **/
> @@ -363,6 +369,7 @@
> /* Point to the update_editor */
> new_info->dir->update_editor = ctx->update_editor;
> new_info->dir->update_baton = ctx->update_baton;
> + new_info->dir->report_context = ctx;
>
> if (info)
> {
> @@ -482,6 +489,15 @@
> {
> apr_pool_create(&dir->dir_baton_pool, dir->pool);
>
> + if (dir->report_context->destination &&
> + dir->report_context->sess->wc_callbacks->invalidate_wc_props)
> + {
> + SVN_ERR(dir->report_context->sess->wc_callbacks->invalidate_wc_props(
> + dir->report_context->sess->wc_callback_baton,
> + dir->report_context->update_target,
> + SVN_RA_SERF__WC_CHECKED_IN_URL, dir->pool));
> + }
> +
> SVN_ERR(dir->update_editor->open_root(dir->update_baton, dir->base_rev,
> dir->dir_baton_pool,
> &dir->dir_baton));
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Dec 5 22:24:52 2007