So, I'm looking at teaching ra_dav how to transfer the "expected current value of a revprop" when editing it.
I started implementing this by extending the PROPPATCH request (specifically, adding a child to the <D:propertyupdate><D:set><D:prop> or <D:propertyupdate><D:remove><D:prop> element). For setting and editing revprops, this seems to be okay: in mod_dav_svn/deadprops.c:db_store() I get the apr_xml_elem *ELEM corresponding to D:prop and can use it to access the child I'm adding. However, for removing revprops, db_remove() (also in deadprops.c) gets only a dav_db and a const char *propname as arguments. I've dug in the dav_db structure, and reached as far as db->resource->info->r (which is a request_rec living under the dav_resource_private sturct), but I can't find anywhere a way to get a handle on the XML request body. And the question: * How can I teach 'propdel --revprop' to pass an expected (pre-deletion) value of the revprop? Thanks, Daniel (yeah, I could just make the client code always go via <D:set> and never via <D:remove>, but that's ugly isn't it?)