You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Eric Nicholson <en...@gmail.com> on 2007/06/06 21:51:18 UTC

Retrieving WebDAV properties/metadata

I use a standard WebDAV client against a subversion repository, and I've
noticed that some of the DAV properties that it generates are stored (with
proppatch) but are never retrieved.  I can get the properties back with
TortoiseSVN using the "properties" function which seems especially strange.

Has anyone else seen this?  I've included a couple WireShark traces below of
the particular propfind commands

First some background info:
Subversion Server: 1.4.2 & 1.4.3
OS: Windows 2000 Server & Windows Server 2003
Apache: 2.0.58
"Other" WebDav Client: WebDrive 7.21

Here's the WebDrive trace, note that "HTTP/1.1 404 Not Found" is returned
for a number of properties including the one I really want,
"srt_modifiedtime":

---------------Begin WebDrive Trace----------------------
PROPFIND /InstallFiles/users/Eric HTTP/1.1
Content-Type: text/xml
Depth: 0
Host: hoover
User-Agent: WebDrive 7.21.1598 DAV
Translate: f
Authorization: NTLM
TlRMTVNTUAADAAAAGAAYAHYAAAAYABgAjgAAABwAHABIAAAACAAIAGQAAAAKAAoAbAAAAAAAAACmAAAABYKIogUBKAoAAAAPcABhAHIAYQBnAG8AbgBfAGQAbwBtAGEAaQBuAEUAcgBpAGMARQBSAEkAQwBOAJxIZBeE/0fHAAAAAAAAAAAAAAAAAAAAADTWvcij99v+/rkT95KCAOpvtXZzLM6T3n==
Content-Length: 285
Connection: Keep-Alive
<?xml version="1.0" encoding="utf-8" ?><propfind
xmlns="DAV:"><prop><creationdate/><getlastmodified/><displayname/><href/><getcontentlength/><resourcetype/><collection/><isreadonly/><lockdiscovery/><srt_modifiedtime/><srt_creationtime/><srt_proptimestamp/><ishidden/></prop></propfind>

HTTP/1.1 207 Multi-Status
Date: Wed, 06 Jun 2007 21:51:35 GMT
Server: Apache/2.0.58 (Win32) DAV/2 SVN/1.4.2 mod_auth_sspi/1.0.3
Content-Length: 813
Keep-Alive: timeout=15, max=96
Connection: Keep-Alive
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:lp1="DAV:" xmlns:lp3="
http://subversion.tigris.org/xmlns/dav/" xmlns:g0="DAV:">
<D:href>/InstallFiles/users/Eric/</D:href>
<D:propstat>
<D:prop>
<lp1:creationdate>2007-02-13T14:31:18.468750Z</lp1:creationdate>
<lp1:getlastmodified>Tue, 13 Feb 2007 14:31:18 GMT</lp1:getlastmodified>
<lp1:resourcetype><D:collection/></lp1:resourcetype>
<D:lockdiscovery/>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
<D:propstat>
<D:prop>
<g0:displayname/>
<g0:href/>
<g0:getcontentlength/>
<g0:collection/>
<g0:isreadonly/>
<g0:srt_modifiedtime/>
<g0:srt_creationtime/>
<g0:srt_proptimestamp/>
<g0:ishidden/>
</D:prop>
<D:status>HTTP/1.1 404 Not Found</D:status>
</D:propstat>
</D:response>
</D:multistatus>
---------------End WebDrive Trace----------------------

Next, the TortoiseSVN trace.  Note that it's reading from an entirely
different directory that I believe points straight to the revision.  Also
it's asking for "allprop" rather than the properties by name.

---------------Begin TortoiseSVN Trace----------------------
PROPFIND /InstallFiles/!svn/bc/157426/users/Eric/New%20Text%20Document.txt
HTTP/1.1
Host: hoover
User-Agent: SVN/1.4.3 (r23084) neon/0.26.3
Connection: TE
TE: trailers
Content-Length: 82
Content-Type: text/xml
Depth: 0
Accept-Encoding: gzip
Accept-Encoding: gzip
Authorization: Basic (deleted)
<?xml version="1.0" encoding="utf-8"?><propfind
xmlns="DAV:"><allprop/></propfind>

HTTP/1.1 207 Multi-Status
Date: Wed, 06 Jun 2007 21:05:43 GMT
Server: Apache/2.0.58 (Win32) DAV/2 SVN/1.4.2 mod_auth_sspi/1.0.3
Content-Length: 1922
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>/InstallFiles/!svn/bc/157426/users/Eric/New%20Text%20Document.txt</D:href>
<D:propstat>
<D:prop>
<C:srt_modifiedtime>2007-02-12T16:17:59Z</C:srt_modifiedtime>
<C:srt_creationtime>2007-02-12T16:17:51Z</C:srt_creationtime>
<C:srt_proptimestamp>2007-02-12T16:23:09Z</C:srt_proptimestamp>
<lp1:getcontentlength>11</lp1:getcontentlength>
<lp1:getcontenttype>text/plain</lp1:getcontenttype>
<lp1:getetag>"108768//users/Eric/New Text Document.txt"</lp1:getetag>
<l
p1:creationdate>2007-02-12T16:23:09.671875Z</lp1:creationdate>
<lp1:getlastmodified>Mon, 12 Feb 2007 16:23:09 GMT</lp1:getlastmodified>
<lp1:checked-in><D:href>/InstallFiles/!svn/ver/108768/users/Eric/New%20Text%20Document.txt</D:href></lp1:checked-in>
<lp1:version-controlled-configuration><D:href>/InstallFiles/!svn/vcc/default</D:href></lp1:version-controlled-configuration>
<lp1:version-name>108768</lp1:version-name>
<lp1:creator-d
isplayname>eric</lp1:creator-displayname>
<lp1:auto-version>DAV:checkout-checkin</lp1:auto-version>
<lp3:baseline-relative-path>users/Eric/New Text Document.txt
</lp3:baseline-relative-path>
<lp3:md5-checksum>e50c9395e4374675fa2bf99652c89259</lp3:md5-checksum>
<lp3:repository-uuid>cc7d1c45-2273-cd42-b99d-97acd1e969dd</lp3:repository-uuid>
<lp3:deadprop-count>3</lp3:deadprop-count>
<lp1:resourcetype/>
<D:supportedlock>
<D:lockentry>
<D:lockscope><D:exclusive/></D:lockscope>
<D:locktype><D:write/></D:locktype>
</D:lockentry>
</D:supportedlock>
<D:lockdiscovery/>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:response>
</D:multistatus>
---------------End TortoiseSVN Trace----------------------

I also tried with the commandline SVN client, and unsurprisingly the results
were very similar to Tortoise...

Anybody have any idea why I'm not getting my metadata back?

Thanks!
Eric Nicholson

Re: Retrieving WebDAV properties/metadata

Posted by Eric Nicholson <en...@gmail.com>.
Is this caused by the namespace bug?

http://subversion.tigris.org/issues/show_bug.cgi?id=1062

-Eric

On 6/6/07, Eric Nicholson <en...@gmail.com> wrote:
>
> I use a standard WebDAV client against a subversion repository, and I've
> noticed that some of the DAV properties that it generates are stored (with
> proppatch) but are never retrieved.  I can get the properties back with
> TortoiseSVN using the "properties" function which seems especially strange.
>
> Has anyone else seen this?  I've included a couple WireShark traces below
> of the particular propfind commands
>
> First some background info:
> Subversion Server: 1.4.2 & 1.4.3
> OS: Windows 2000 Server & Windows Server 2003
> Apache: 2.0.58
> "Other" WebDav Client: WebDrive 7.21
>
> Here's the WebDrive trace, note that "HTTP/1.1 404 Not Found" is returned
> for a number of properties including the one I really want,
> "srt_modifiedtime":
>
> ---------------Begin WebDrive Trace----------------------
> PROPFIND /InstallFiles/users/Eric HTTP/1.1
> Content-Type: text/xml
> Depth: 0
> Host: hoover
> User-Agent: WebDrive 7.21.1598 DAV
> Translate: f
> Authorization: NTLM
> TlRMTVNTUAADAAAAGAAYAHYAAAAYABgAjgAAABwAHABIAAAACAAIAGQAAAAKAAoAbAAAAAAAAACmAAAABYKIogUBKAoAAAAPcABhAHIAYQBnAG8AbgBfAGQAbwBtAGEAaQBuAEUAcgBpAGMARQBSAEkAQwBOAJxIZBeE/0fHAAAAAAAAAAAAAAAAAAAAADTWvcij99v+/rkT95KCAOpvtXZzLM6T3n==
>
> Content-Length: 285
> Connection: Keep-Alive
> <?xml version="1.0" encoding="utf-8" ?><propfind
> xmlns="DAV:"><prop><creationdate/><getlastmodified/><displayname/><href/><getcontentlength/><resourcetype/><collection/><isreadonly/><lockdiscovery/><srt_modifiedtime/><srt_creationtime/><srt_proptimestamp/><ishidden/></prop></propfind>
>
>
> HTTP/1.1 207 Multi-Status
> Date: Wed, 06 Jun 2007 21:51:35 GMT
> Server: Apache/2.0.58 (Win32) DAV/2 SVN/1.4.2 mod_auth_sspi/1.0.3
> Content-Length: 813
> Keep-Alive: timeout=15, max=96
> Connection: Keep-Alive
> 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:lp1="DAV:" xmlns:lp3="
> http://subversion.tigris.org/xmlns/dav/" xmlns:g0="DAV:">
> <D:href>/InstallFiles/users/Eric/</D:href>
> <D:propstat>
> <D:prop>
> <lp1:creationdate>2007-02-13T14:31:18.468750Z</lp1:creationdate>
> <lp1:getlastmodified>Tue, 13 Feb 2007 14:31:18 GMT</lp1:getlastmodified>
> <lp1:resourcetype><D:collection/></lp1:resourcetype>
> <D:lockdiscovery/>
> </D:prop>
> <D:status>HTTP/1.1 200 OK</D:status>
> </D:propstat>
> <D:propstat>
> <D:prop>
> <g0:displayname/>
> <g0:href/>
> <g0:getcontentlength/>
> <g0:collection/>
> <g0:isreadonly/>
> <g0:srt_modifiedtime/>
> <g0:srt_creationtime/>
> <g0:srt_proptimestamp/>
> <g0:ishidden/>
> </D:prop>
> <D:status>HTTP/1.1 404 Not Found</D:status>
> </D:propstat>
> </D:response>
> </D:multistatus>
> ---------------End WebDrive Trace----------------------
>
> Next, the TortoiseSVN trace.  Note that it's reading from an entirely
> different directory that I believe points straight to the revision.  Also
> it's asking for "allprop" rather than the properties by name.
>
> ---------------Begin TortoiseSVN Trace----------------------
> PROPFIND /InstallFiles/!svn/bc/157426/users/Eric/New%20Text%20Document.txt
> HTTP/1.1
> Host: hoover
> User-Agent: SVN/1.4.3 (r23084) neon/0.26.3
> Connection: TE
> TE: trailers
> Content-Length: 82
> Content-Type: text/xml
> Depth: 0
> Accept-Encoding: gzip
> Accept-Encoding: gzip
> Authorization: Basic (deleted)
> <?xml version="1.0" encoding="utf-8"?><propfind
> xmlns="DAV:"><allprop/></propfind>
>
> HTTP/1.1 207 Multi-Status
> Date: Wed, 06 Jun 2007 21:05:43 GMT
> Server: Apache/2.0.58 (Win32) DAV/2 SVN/1.4.2 mod_auth_sspi/1.0.3
> Content-Length: 1922
> 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>/InstallFiles/!svn/bc/157426/users/Eric/New%20Text%20Document.txt</D:href>
> <D:propstat>
> <D:prop>
> <C:srt_modifiedtime>2007-02-12T16:17:59Z</C:srt_modifiedtime>
> <C:srt_creationtime>2007-02-12T16:17:51Z</C:srt_creationtime>
> <C:srt_proptimestamp>2007-02-12T16:23:09Z</C:srt_proptimestamp>
> <lp1:getcontentlength>11</lp1:getcontentlength>
> <lp1:getcontenttype>text/plain</lp1:getcontenttype>
> <lp1:getetag>"108768//users/Eric/New Text Document.txt"</lp1:getetag>
> <l
> p1:creationdate>2007-02-12T16:23:09.671875Z</lp1:creationdate>
> <lp1:getlastmodified>Mon, 12 Feb 2007 16:23:09 GMT</lp1:getlastmodified>
> <lp1:checked-in><D:href>/InstallFiles/!svn/ver/108768/users/Eric/New%20Text%20Document.txt</D:href></lp1:checked-in>
>
>
> <lp1:version-controlled-configuration><D:href>/InstallFiles/!svn/vcc/default</D:href></lp1:version-controlled-configuration>
> <lp1:version-name>108768</lp1:version-name>
> <lp1:creator-d
> isplayname>eric</lp1:creator-displayname>
> <lp1:auto-version>DAV:checkout-checkin</lp1:auto-version>
> <lp3:baseline-relative-path>users/Eric/New Text Document.txt</lp3:baseline-relative-path>
>
> <lp3:md5-checksum>e50c9395e4374675fa2bf99652c89259</lp3:md5-checksum>
>
> <lp3:repository-uuid>cc7d1c45-2273-cd42-b99d-97acd1e969dd</lp3:repository-uuid>
> <lp3:deadprop-count>3</lp3:deadprop-count>
> <lp1:resourcetype/>
> <D:supportedlock>
> <D:lockentry>
> <D:lockscope><D:exclusive/></D:lockscope>
> <D:locktype><D:write/></D:locktype>
> </D:lockentry>
> </D:supportedlock>
> <D:lockdiscovery/>
> </D:prop>
> <D:status>HTTP/1.1 200 OK</D:status>
> </D:propstat>
> </D:response>
> </D:multistatus>
> ---------------End TortoiseSVN Trace----------------------
>
> I also tried with the commandline SVN client, and unsurprisingly the
> results were very similar to Tortoise...
>
> Anybody have any idea why I'm not getting my metadata back?
>
> Thanks!
> Eric Nicholson
>
>
>