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

svn and real WebDAV properties

From: Garret Wilson <garret_at_globalmentor.com>
Date: 2007-03-20 21:50:48 CET

Everyone,

I'm back to the list after a long absence. I'd appreciate it if someone
could tell me what's going on here---this is really shooting holes in
the core of my current project.

I've got custom WebDAV client code that has been using Apache 2.2.3 and
mod_dav as a back-end, until I discovered that mod_dav is apparently
corrupting the XML namespaces of WebDAV properties. See:

http://issues.apache.org/bugzilla/show_bug.cgi?id=41908
http://oldsite.webdav.org/mod_dav/bugs/index.php3?id=143

So I turned to Subversion mod_svn with autoversion as my only hope, but
Subversion seems to throw away my WebDAV property namespaces altogether!
Is Subversion not WebDAV compliant at the fundamental PROPPATCH/PROPFIND
level?

A literal trace of communication (PROPFIND, PROPPATCH, PROPFIND) is
below. You'll note that my http://purl.org/dc/elements/1.1/title
property has turned into a
http://subversion.tigris.org/xmlns/custom/title property! Why?

Why oh why oh why? (To quote Woody Guthrie.)

Garret

PROPFIND /marmoxdemo/ HTTP/1.1
depth: 0
content-length: 102
host: svn.globalmentor.com
authorization: BASIC (removed)

<?xml version="1.0" encoding="UTF-8"?>
<D:propfind xmlns:D="DAV:">
    <D:allprop />
</D:propfind>

HTTP/1.1 207 Multi-Status
Date: Tue, 20 Mar 2007 20:34:07 GMT
Server: Apache/2.2.3 (Unix) mod_ssl/2.2.3 OpenSSL/0.9.8a DAV/2
SVN/1.5.0-dev PHP/5.1.2 mod_jk/1.2.15
Content-Length: 1327
Content-Type: text/xml; charset="utf-8"

<?xml version="1.0" encoding="utf-8"?>
<D:multistatus xmlns:D="DAV:" xmlns:ns0="DAV:">
<D:response xmlns:S="http://subversion.tigris.org/xmlns/svn/"
xmlns:C="http://subversion.tigris.org/xmlns/custom/"
xmlns:V="http://subversion.tigris.org/xmlns/dav/" xmlns:lp1="DAV:"
xmlns:lp3="http://subversion.tigris.org/xmlns/dav/"
xmlns:lp2="http://apache.org/dav/props/">
<D:href>/marmoxdemo/</D:href>
<D:propstat>
<D:prop>
<lp1:resourcetype><D:collection/></lp1:resourcetype>
<lp1:getcontenttype>text/html; charset=UTF-8</lp1:getcontenttype>
<lp1:getetag>W/"4//"</lp1:getetag>
<lp1:creationdate>2007-03-20T20:25:43.835405Z</lp1:creationdate>
<lp1:getlastmodified>Tue, 20 Mar 2007 20:25:43 GMT</lp1:getlastmodified>
<lp1:checked-in><D:href>/marmoxdemo/!svn/ver/4/</D:href></lp1:checked-in>
<lp1:version-controlled-configuration><D:href>/marmoxdemo/!svn/vcc/default</D:href></lp1:version-controlled-configuration>
<lp1:version-name>4</lp1:version-name>
<lp1:creator-displayname>marmoxdemo</lp1:creator-displayname>
<lp1:auto-version>DAV:checkout-checkin</lp1:auto-version>
<lp3:baseline-relative-path/>
<lp3:repository-uuid>cb0a59c2-9d00-4ab7-9e51-5565108a4908</lp3:repository-uuid>
<lp3:deadprop-count>0</lp3:deadprop-count>
<D:lockdiscovery/>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:response>
</D:multistatus>

PROPPATCH /marmoxdemo/ HTTP/1.1
content-length: 234
host: svn.globalmentor.com
authorization: BASIC (removed)

<?xml version="1.0" encoding="UTF-8"?>
<D:propertyupdate xmlns:D="DAV:"
xmlns:dc="http://purl.org/dc/elements/1.1/">
    <D:set>
        <D:prop>
            <dc:title>Test Repository Root</dc:title>
        </D:prop>
    </D:set>
</D:propertyupdate>

HTTP/1.1 207 Multi-Status
Date: Tue, 20 Mar 2007 20:34:07 GMT
Server: Apache/2.2.3 (Unix) mod_ssl/2.2.3 OpenSSL/0.9.8a DAV/2
SVN/1.5.0-dev PHP/5.1.2 mod_jk/1.2.15
Content-Length: 349
Content-Type: text/xml; charset="utf-8"

<?xml version="1.0" encoding="utf-8"?>
<D:multistatus xmlns:D="DAV:"
xmlns:ns1="http://purl.org/dc/elements/1.1/" xmlns:ns0="DAV:">
<D:response>
<D:href>/marmoxdemo/!svn/wrk/f61311e8-faeb-432e-a552-634646e24d9d/</D:href>
<D:propstat>
<D:prop>
<ns1:title/>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:response>
</D:multistatus>

PROPFIND /marmoxdemo/ HTTP/1.1
depth: 0
content-length: 102
host: svn.globalmentor.com
authorization: BASIC (removed)

<?xml version="1.0" encoding="UTF-8"?>
<D:propfind xmlns:D="DAV:">
    <D:allprop />
</D:propfind>

HTTP/1.1 207 Multi-Status
Date: Tue, 20 Mar 2007 20:34:08 GMT
Server: Apache/2.2.3 (Unix) mod_ssl/2.2.3 OpenSSL/0.9.8a DAV/2
SVN/1.5.0-dev PHP/5.1.2 mod_jk/1.2.15
Content-Length: 1367
Content-Type: text/xml; charset="utf-8"

<?xml version="1.0" encoding="utf-8"?>
<D:multistatus xmlns:D="DAV:" xmlns:ns0="DAV:">
<D:response xmlns:S="http://subversion.tigris.org/xmlns/svn/"
xmlns:C="http://subversion.tigris.org/xmlns/custom/"
xmlns:V="http://subversion.tigris.org/xmlns/dav/" xmlns:lp1="DAV:"
xmlns:lp3="http://subversion.tigris.org/xmlns/dav/"
xmlns:lp2="http://apache.org/dav/props/">
<D:href>/marmoxdemo/</D:href>
<D:propstat>
<D:prop>
<C:title>Test Repository Root</C:title>
<lp1:resourcetype><D:collection/></lp1:resourcetype>
<lp1:getcontenttype>text/html; charset=UTF-8</lp1:getcontenttype>
<lp1:getetag>W/"5//"</lp1:getetag>
<lp1:creationdate>2007-03-20T20:34:07.919467Z</lp1:creationdate>
<lp1:getlastmodified>Tue, 20 Mar 2007 20:34:07 GMT</lp1:getlastmodified>
<lp1:checked-in><D:href>/marmoxdemo/!svn/ver/5/</D:href></lp1:checked-in>
<lp1:version-controlled-configuration><D:href>/marmoxdemo/!svn/vcc/default</D:href></lp1:version-controlled-configuration>
<lp1:version-name>5</lp1:version-name>
<lp1:creator-displayname>marmoxdemo</lp1:creator-displayname>
<lp1:auto-version>DAV:checkout-checkin</lp1:auto-version>
<lp3:baseline-relative-path/>
<lp3:repository-uuid>cb0a59c2-9d00-4ab7-9e51-5565108a4908</lp3:repository-uuid>
<lp3:deadprop-count>1</lp3:deadprop-count>
<D:lockdiscovery/>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:response>
</D:multistatus>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Thu Mar 22 23:32:45 2007

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.