Hey, lookie, a bunch of ###'s. =) I'm not quite sure whether we would want to set Cache-Control to just "public" and not specify a max-age. Or, perhaps we need to add some configuration directives to allow the admin to tweak the value.
I checked the wireshark traffic on a checkout and it looks like all the right headers are set - with this patch, we now have Cache-Control, ETag, and Last-Modified all set. When mod_deflate is run, it'll set the appropriate vary headers so that should all just work too. -- justin Index: subversion/mod_dav_svn/repos.c =================================================================== --- subversion/mod_dav_svn/repos.c (revision 1350197) +++ subversion/mod_dav_svn/repos.c (working copy) @@ -3043,14 +3043,12 @@ set_headers(request_rec *r, const dav_resource *re apr_table_setn(r->headers_out, "ETag", dav_svn__getetag(resource, resource->pool)); -#if 0 /* As version resources don't change, encourage caching. */ - /* ### FIXME: This conditional is wrong -- type is often REGULAR, - ### and the resource doesn't seem to be baselined. */ - if (resource->type == DAV_RESOURCE_TYPE_VERSION) + if ((resource->type == DAV_RESOURCE_TYPE_REGULAR + && resource->versioned && !resource->collection) + || resource->type == DAV_RESOURCE_TYPE_VERSION) /* Cache resource for one week (specified in seconds). */ apr_table_setn(r->headers_out, "Cache-Control", "max-age=604800"); -#endif /* we accept byte-ranges */ apr_table_setn(r->headers_out, "Accept-Ranges", "bytes");