Hi!
There's a lot of parameteter tracking in this patch. Basically it's all
about passing down the url arguments to assemble_status().
The goal is that we should be able to remove the entry and parent_entry
fields in a follow-up and be able to use the parent_relpath when we want
to detect switches but also for determining the toplevel op_root of a
copy (we may have a copy below another copy with mixed revs).
Sending it in to see if anyone has any objections. I don't feel
comfortable committing it without someone more experienced giving it a
look.
[[[
First step in the move to using repos_root_url and repos_relpaths for
describing urls in the status code.
The idea is to reuse the parents repos_relpath when detecting if a node is
switched instead of doing an extra scan for each node. Since we're doing a
depth first traversal of the wc, the parent has already been visited.
Hopefully we will save some read calls.
We still depend on the url field but the plan is to remove it.
* subversion/include/svn_wc.h
(svn_wc_status3_t): Add new fields 'repos_root_url' and 'repos_relpath'.
* subversion/libsvn_wc/status.c
(assemble_status): Add new parameters. Go back to using the
previous way of detecting a switched path; simply comparing the
repos_relpath with the parent_repos_relpath + basename(path).
(send_status_structure): Add parameter 'parent_repos_root_url' and
'parent_repos_relpath.
(handle_dir_entry): Add parameter 'dir_repos_root_url' and
'dir_repos_relpath'.
(internal_status): Fetch the parent_repos_root_url and
parent_repos_relpath from the db. This function
is called on the anchor paths.
(get_dir_status): Add parameter 'parent_repos_root_url' and
'parent_repos_relpath.
(svn_wc_dup_status3): Duplicate 'repos_root_url' and 'repos_relpath'.
]]]
Daniel
Received on 2010-05-16 23:25:09 CEST