Herr Stein,
I need to understand how to best map deltaV concepts to svn; I'm
attempting to make our dav layer implement the new
revision-prop-changing RA function.
* I've already written simple libsvn_ra_dav code that calls PROPPATCH
on a baseline collection url (something like !svn/bc/5).
* On the server, dav_method_proppatch handles the request. It begins
by asking mod_dav_svn for the resource. The resource that comes
back claims to be TYPE_REGULAR, versioned, but *not* baselined (is
that correct?) and not working.
* dav_auto_checkout then runs. Because the resource claims to be
versioned but NOT working, it calls mod_dav_svn's
auto_versionable() routine, as a way figuring out if an
auto-checkout is possible. mod_dav_svn doesn't do auto-anything
yet, so it always returns 0 ("not auto-versionable"), and mod_dav
then returns general 409 failure to the client. :-(
So now I look and see what happens when we apply the 'svn:log'
property during a commit:
* client does a PROPPATCH against a 'working baseline',
(something like !svn/wbl/huge-activity-id/12)
* On the server, dav_method_proppatch handles the request. It begins
by asking mod_dav_svn for the resource. The resource that comes
back claims to be TYPE_WORKING, versioned, baselined, and working.
* dav_auto_checkout then runs. Because the resource claims to be
versioned and *working*, no auto-checkout is attempted. Instead,
dav_auto_checkout automatically returns success.
* dav_method_proppatch finishes by stuffing the property into the
provider's prop database.
So it appears here that mod_dav refuses to proppatch any resource that
isn't a 'working' resource. If such a request comes in, it valiantly
attempts to do an auto-checkout to *get* a working resource, but
mod_dav_svn doesn't provide that yet.
I'm confused about what needs to change here. I see different
options:
1. should mod_dav_svn claim that the bc resource is 'working'? or
is that just wrong? and why isn't the bc resource 'baselined'?
2. should mod_dav_svn start implementing auto-checkout on
baseline-collection resources, producing a working-baseline that
can be patched? At the moment, mod_dav_svn assumes all
working-baselines have activity (transaction) ids in them.
Should we break this assumption? Or maybe we should create an
activity anyway, even though there's no fs txn, *just* for the
purpose of generating a wbl from a bc? Our auto-checkin could then
cleanup the activity.
Awaiting the Oracle's answer...
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Sep 27 21:39:23 2002