On Mon, Jun 28, 2010 at 16:04, <rhuijben_at_apache.org> wrote:
>...
> +++ subversion/trunk/subversion/libsvn_wc/adm_ops.c Mon Jun 28 20:04:22 2010
>...
> @@ -1332,6 +1338,11 @@ svn_wc_add4(svn_wc_context_t *wc_ctx,
> repos_root_url, repos_root_url,
> repos_uuid, 0,
> depth, scratch_pool));
> +
> + /* ### The entries based code still needs the incomplete base record,
> + ### remove it for the direct db code. */
> + if (!copyfrom_url)
> + SVN_ERR(svn_wc__db_base_remove(db, local_abspath, scratch_pool));
"direct db" ?? ... did you mean single db?
And I think the comment should explain that area just a bit more: that
we create an administrative area with a single row in BASE_NODE, and
then you wipe out that row, leaving a database with no node
information.
>...
> +++ subversion/trunk/subversion/libsvn_wc/wc_db.c Mon Jun 28 20:04:22 2010
> @@ -3071,12 +3071,20 @@ svn_wc__db_op_add_directory(svn_wc__db_t
>
> err = navigate_to_parent(&pdh, db, pdh, svn_sqlite__mode_readwrite,
> scratch_pool);
> - if (err)
> + if (err && err->apr_err == SVN_ERR_WC_NOT_WORKING_COPY)
> {
> - /* Prolly fell off the top of the wcroot. Just call it a day. */
> + /* Not registered in the parent; register as addition */
> svn_error_clear(err);
> - return SVN_NO_ERROR;
> +
> + SVN_ERR(svn_wc__db_pdh_parse_local_abspath(&pdh, &local_relpath, db,
> + svn_dirent_dirname(local_abspath, scratch_pool),
> + svn_sqlite__mode_readwrite, scratch_pool,
> + scratch_pool));
> +
> + VERIFY_USABLE_PDH(pdh);
> }
> + else
> + SVN_ERR(err);
I don't understand this part. navigate_to_parent() doesn't look for
the child in the parent, so "not registered in the parent" is an
incorrect statement.
The only real error is that you moved out of the working copy. I think
there is something more subtle going on here, and your comments and
code are not following that. Your explicit call to parse_local_abspath
is relatively bogus: navigate_ot_parent does that internally.
Please re-investigate this change. I don't think it should be necessary at all.
Cheers,
-g
Received on 2010-06-28 22:23:30 CEST