On Tue, Jun 1, 2010 at 11:50, <rhuij...@apache.org> wrote: >... > +++ subversion/trunk/subversion/libsvn_wc/adm_ops.c Tue Jun 1 15:50:55 2010 >... > + if (new_repos_relpath != NULL) > { > - modify_flags |= SVN_WC__ENTRY_MODIFY_URL; > - tmp_entry.url = new_url; > + const char *new_url = svn_path_url_add_component2(new_repos_root_url, > + new_repos_relpath, > + scratch_pool); > + if (new_url != NULL > + && (! entry->url || strcmp(new_url, entry->url)))
No need for new_url != NULL :-P >... > @@ -373,8 +389,10 @@ svn_wc__do_update_cleanup(svn_wc__db_t * > case svn_wc__db_status_obstructed_delete: > /* There is only a parent stub. That's fine... just tweak it > and avoid directory recursion. */ > - SVN_ERR(tweak_node(db, local_abspath, svn_node_dir, TRUE, base_url, > - new_revision, FALSE /* allow_removal */, pool)); > + SVN_ERR(tweak_node(db, local_abspath, kind, TRUE, > + new_repos_relpath, new_repos_root_url, > + new_repos_uuid, new_revision, > + FALSE /* allow_removal */, pool)); Should that be svn_wc__db_kind_dir rather than KIND? > return SVN_NO_ERROR; > > /* Explicitly ignore other statii */ > @@ -385,12 +403,14 @@ svn_wc__do_update_cleanup(svn_wc__db_t * > if (kind == svn_wc__db_kind_file || kind == svn_wc__db_kind_symlink) > { > /* Parent not updated so don't remove PATH entry. */ > - SVN_ERR(tweak_node(db, local_abspath, svn_node_file, FALSE, base_url, > + SVN_ERR(tweak_node(db, local_abspath, kind, FALSE, > + new_repos_relpath, new_repos_root_url, > new_repos_uuid, > new_revision, FALSE /* allow_removal */, pool)); Same, but db_kind_file. >... > @@ -1410,16 +1433,17 @@ mark_tree_copied(svn_wc__db_t *db, > || child_status == svn_wc__db_status_excluded) > { > if (child_kind == svn_wc__db_kind_dir) > - SVN_ERR(tweak_node(db, child_abspath, svn_node_dir, > - TRUE /* parent_stub */, child_url, > + SVN_ERR(tweak_node(db, child_abspath, child_kind, > + TRUE /* parent_stub */, child_relpath, > + new_repos_root_url, new_repos_uuid, > SVN_INVALID_REVNUM, TRUE /* allow_removal */, > iterpool)); And the constant here? > else > - SVN_ERR(tweak_node(db, child_abspath, svn_node_file, > - FALSE /* parent_stub */, > - child_url, SVN_INVALID_REVNUM, > - TRUE /* allow_removal */, > - iterpool)); > + SVN_ERR(tweak_node(db, child_abspath, child_kind, > + FALSE /* parent_stub */, child_relpath, > + new_repos_root_url, new_repos_uuid, > + SVN_INVALID_REVNUM, TRUE /* allow_removal */, > + iterpool)); Maybe not here to pick up kind_symlink. (tho I expect this code will be gone before we get to symlink) >... > @@ -1767,7 +1787,14 @@ svn_wc_add4(svn_wc_context_t *wc_ctx, > /* Recursively add the 'copied' existence flag as well! */ > SVN_ERR(mark_tree_copied(db, local_abspath, > exists ? status : svn_wc__db_status_added, > - new_url, > + svn_relpath_join( > + svn_path_uri_decode( > + svn_uri_skip_ancestor( > + parent_entry->repos, > + parent_entry->url), pool), > + base_name, pool), Maybe break that out to a localvar to clarify that you are computing parent_relpath and joining to create new_relpath? >... Cheers, -g