[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

[WIP] Use repos_root_url and repos_relpath in the status code.

From: Daniel Näslund <daniel_at_longitudo.com>
Date: Sun, 16 May 2010 23:24:22 +0200


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

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
  (handle_dir_entry): Add parameter 'dir_repos_root_url' and
  (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
  (svn_wc_dup_status3): Duplicate 'repos_root_url' and 'repos_relpath'.


Received on 2010-05-16 23:25:09 CEST

This is an archived mail posted to the Subversion Dev mailing list.