On 09/26/2012 12:28 PM, Philip Martin wrote:
> Branko Čibej <br...@wandisco.com> writes:
> 
>> This is how the cache /should/ work, according to any number of HTTP
>> specs. Unfortunately, most proxies that I know about don't attempt
>> anything as "advanced" as that.
> 
> If the cache ignores X-SVN-VR-Base and simply caches the response that
> will break 1.8 clients.  Looking at the response:
> 
> HTTP/1.1 200 OK
> Date: Wed, 26 Sep 2012 16:20:33 GMT
> Server: Apache/2.2.16 (Debian) mod_ssl/2.2.16 OpenSSL/0.9.8o DAV/2 
> SVN/1.8.0-dev
> Last-Modified: Wed, 26 Sep 2012 16:20:19 GMT
> ETag: "2//f"
> Cache-Control: max-age=604800
> Accept-Ranges: bytes
> Transfer-Encoding: chunked
> Content-Type: application/vnd.svn-svndiff
> 
> I don't see a header that allows the client to confirm that that delta
> is based on the requested revision.  I suppose the client just assumes
> that the server used the right base revision so if a cache returns the
> wrong delta the client will get a checksum mismatch when constructing
> the full-text.

That's right.  The client only cares about that Content-Type header -- if
"application/vnd.svn-svndiff", the content is expected to be a delta against
the revision in the request's X-SVN-VR-Base header.

> Perhaps the server should send the X-SVN-VR-Base header back?

Wouldn't be a bad idea.  At a minimum, a client could compare it with the
one that was submitted in the GET request, and error out if they don't match.

-- 
C. Michael Pilato <cmpil...@collab.net>
CollabNet   <>   www.collab.net   <>   Enterprise Cloud Development

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to