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
Received on Wed Jun 6 23:51:40 2007