You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2011/05/27 22:13:25 UTC
svn commit: r1128441 - in /subversion/trunk/subversion:
libsvn_client/externals.c libsvn_wc/wc_db.c
Author: rhuijben
Date: Fri May 27 20:13:25 2011
New Revision: 1128441
URL: http://svn.apache.org/viewvc?rev=1128441&view=rev
Log:
Fix two small issues in the format 29 externals processing. After this patch
the externals processing works on the EXTERNALS store when the format 29
code is enabled.
* subversion/libsvn_client/externals.c
(handle_external_item_change): Pass the right parent directory.
* subversion/libsvn_wc/wc_db.c
(insert_external_node): Allow recording (directory) externals in unversioned
subdirectories.
Modified:
subversion/trunk/subversion/libsvn_client/externals.c
subversion/trunk/subversion/libsvn_wc/wc_db.c
Modified: subversion/trunk/subversion/libsvn_client/externals.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/externals.c?rev=1128441&r1=1128440&r2=1128441&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/externals.c (original)
+++ subversion/trunk/subversion/libsvn_client/externals.c Fri May 27 20:13:25 2011
@@ -920,7 +920,6 @@ handle_external_item_change(const struct
if (! old_url)
{
/* This branch is only used during a checkout or an export. */
- const char *parent_abspath;
/* First notify that we're about to handle an external. */
if (eb->ctx->notify_func2)
@@ -934,8 +933,9 @@ handle_external_item_change(const struct
case svn_node_dir:
/* The target dir might have multiple components. Guarantee
the path leading down to the last component. */
- parent_abspath = svn_dirent_dirname(local_abspath, scratch_pool);
- SVN_ERR(svn_io_make_dir_recursively(parent_abspath, scratch_pool));
+ SVN_ERR(svn_io_make_dir_recursively(svn_dirent_dirname(local_abspath,
+ scratch_pool),
+ scratch_pool));
/* If we were handling renames the fancy way, then before
checking out a new subdir here, we would somehow learn if
@@ -961,7 +961,7 @@ handle_external_item_change(const struct
SVN_ERR(switch_dir_external(
local_abspath, new_url,
&(new_item->peg_revision), &(new_item->revision),
- parent_abspath, eb->timestamp_sleep, eb->ctx,
+ parent_dir_abspath, eb->timestamp_sleep, eb->ctx,
scratch_pool));
break;
case svn_node_file:
Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.c?rev=1128441&r1=1128440&r2=1128441&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.c Fri May 27 20:13:25 2011
@@ -2581,12 +2581,13 @@ insert_external_node(void *baton,
{
const insert_external_baton_t *ieb = baton;
svn_wc__db_status_t status;
- svn_wc__db_kind_t kind;
svn_error_t *err;
svn_boolean_t update_root;
apr_int64_t repos_id;
#if SVN_WC__VERSION >= SVN_WC__HAS_EXTERNALS_STORE
svn_sqlite__stmt_t *stmt;
+#else
+ svn_wc__db_kind_t kind;
#endif
if (ieb->repos_id != INVALID_REPOS_ID)
@@ -2595,6 +2596,7 @@ insert_external_node(void *baton,
SVN_ERR(create_repos_id(&repos_id, ieb->repos_root_url, ieb->repos_uuid,
wcroot->sdb, scratch_pool));
+#if SVN_WC__VERSION < SVN_WC__HAS_EXTERNALS_STORE
/* Currently externals can only be added under an existing directory */
SVN_ERR(read_info(&status, &kind, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
@@ -2605,6 +2607,7 @@ insert_external_node(void *baton,
if ((status != svn_wc__db_status_normal && status != svn_wc__db_status_added)
|| kind != svn_wc__db_kind_dir)
return svn_error_create(SVN_ERR_WC_PATH_UNEXPECTED_STATUS, NULL, NULL);
+#endif
/* And there must be no existing BASE node or it must be a file external */
err = base_get_info(&status, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,