Hi,
Attached patch addresses the failing checkout_test-7(checkout to a
versioned dir from different repo).
Would like to know the comments from people working on tree-conflicts
branch.
With regards
Kamesh Jayachandran
[[[
Address checkout_tests-7 failure.
* subversion/libsvn_wc/update_editor.c
(add_directory): For versioned obstruction
check whether obstruction corresponds to the same corresponding-URL
as the current update drive. If it points to some other URL error out
saying so, else do tree-conflict detection.
* subversion/tests/cmdline/checkout_tests.py
(forced_checkout_with_versioned_obstruction): Fix the expected error
when the checkout hits a obstructed foreign repository.
]]]
Index: subversion/libsvn_wc/update_editor.c
===================================================================
--- subversion/libsvn_wc/update_editor.c (revision 31331)
+++ subversion/libsvn_wc/update_editor.c (working copy)
@@ -1482,7 +1482,23 @@
else
{
svn_wc_adm_access_t *parent_adm_access;
+ const char *repos;
+ /* Use the repository root of the anchor, but only if it
+ actually is an ancestor of the URL of this directory. */
+ if (db->edit_baton->repos
+ && svn_path_is_ancestor(db->edit_baton->repos, db->new_URL))
+ repos = db->edit_baton->repos;
+ else
+ repos = NULL;
+ /* Make sure it's the right working copy, either by creating it
+ so, or by checking that it is so already. */
+ SVN_ERR(svn_wc_ensure_adm3(db->path,
+ NULL /* TODO check uuid too.*/,
+ db->new_URL, repos,
+ *(eb->target_revision),
+ db->ambient_depth, pool));
+
SVN_ERR(svn_wc_adm_retrieve(&parent_adm_access, eb->adm_access,
pb->path, pool));
Index: subversion/tests/cmdline/checkout_tests.py
===================================================================
--- subversion/tests/cmdline/checkout_tests.py (revision 31331)
+++ subversion/tests/cmdline/checkout_tests.py (working copy)
@@ -280,8 +280,7 @@
"Expected error during co", None, svntest.verify.AnyOutput,
"co", "--force", sbox.repo_url, other_wc_dir)
- test_stderr("svn: Failed to add directory '.*A': a versioned directory " \
- "of the same name already exists", serr)
+ test_stderr("svn: URL '.*A' doesn't match existing URL '.*A' in '.*A'", serr)
#----------------------------------------------------------------------
# Ensure that an import followed by a checkout in place works correctly.
Received on 2008-05-21 17:05:51 CEST