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

Re: svn and real WebDAV properties

From: Garret Wilson <garret_at_globalmentor.com>
Date: 2007-03-22 13:53:28 CET

Hi, everyone. I didn't get any responses earlier; does anyone on this
list know how Subversion WebDAV properties work, or know of some
documentation I could go to in order to find out? (There's always the
source code, I suppose...)

The interesting question, however, is why Subversion would throw away
all XML namespace information, rendering it incompatible with WebDAV at
the most fundamental property level. There seems to be no technical
reason for this---if Subversion wanted to set custom properties, it
could do so using its own namespace. And if Subversion had problems
versioning properties from other namespaces, it could encode them and
treat all properties as non-namespace opaque strings behind the scenes,
yet unencode them and give them back in their correct namespaces.

Why was the design decision made to break WebDAV support? Where can I go
to find out?

Thanks,

Garret

Garret Wilson wrote:
> 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
>
> P.S. Sorry if this message comes through twice---I first posted it
> before my list subscription was complete.
>
> 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 13:53:56 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.