Beating a dead horse, regarding issue #704 ('switch' rewriting
vsn-rsc-urls)...
I've hit a wrench in the solution I'm implementing, and really, it
seems to speak against the solution gstein suggested as well.
The current solution I'm using (which is almost like gstein's solution):
- on the server side, we get a free fs 'walk' from dir_delta by
comparing the switched tree against revision 0. dir_delta is
driving the xml-output editor in a secondary <resource-walk> mode,
which produces a *flat* list of <resource> elements that contain
just full paths and vsn-rsc-urls.
- on the client side, we've expanded the parser's knowledge of the
two new xml elements. when it sees a <resource>, it simply calls
the set_wc_prop callback on the full path.
PROBLEM: It's useless to send back a flat list of absolute fs-paths
and vsn-rsc-urls, because we don't know *where* to apply them in the
wc. Only the update-editor has been properly "pre-anchored" in the
working copy, and thus the only safe way to set wcprops is through
this editor. (...unless we want to pass new arguments into
RA->do_switch() that indicate where the update-editor is anchored,
bleah!)
So if ra_dav is going to have to re-drive the update-editor to set
wcprops, then the resource-walk tree should *look* like an editor
drive, full of replace_* calls. (I mean, it could look completely
different, but what's the point? Why write a new parser to drive the
same editor?)
Following the logic through: if the resource-walk tree must look like
an editor drive, then it makes sense for mod_dav_svn to re-use its
xml-editor, and make 'adds' look like 'replaces' (passing
SVN_INVALID_REVNUM for the base-revision args.)
Back to square 1 again. Essentially what Karl suggested: tweak the
editor docstring promise, so that the base-revision sanity check is
optional. Grrrrrr.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon May 20 18:39:35 2002