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

Re: Subversion's "magic" URLs

From: Greg Stein <gstein_at_lyra.org>
Date: 2002-02-21 08:45:48 CET

On Thu, Feb 21, 2002 at 08:16:10AM +0100, Branko �ibej wrote:
> Greg,
>
> I just had a brainstorm (caused by lack of sleep, no doubt).

hehe...

> When accessing a repository over WebDAV, we store all sorts of private
> URLs into the WC. These are supposed to be opaque, and their form (iirc,
> the $svn component) can be configured on the server.

Right.

[ note that the stuff we store is really just a cache; if it isn't present,
  then we go and fetch it; we cache to avoid those round trips ]

> Now, I wondered, could we instead create those URLs in the form of a
> /query/ against the repository? E.g., instead of writing
>
> http://svn.collab.net/repos/svn/$svn/ver/13.22/trunk/HACKING
>
> could we instead write
>
> http://svn.collab.net/repos/svn/?ver=13.22&path=trunk/HACKING

Nope, sorry.

The problem is that the latter identifies a single resource on that server:
/repos/svn/. The query parameters are handled by the (single) resource, but
it is still just one resource.

The resulting effect is that you do not have separate, cacheable resources.

> The thing is, DAV allowes this,

Well, I'm not sure it would allow it. I think you'd end up in a bog of
modelling problems when you try to define "why" that one resource has
different responses to GET, different properties based on the Request-URI,
etc. I think it would get problematic enough that it would end up failing
one or more state invariants of RFC 2616 (HTTP) or RFC 2518 (DAV).

>...
> I'm probably hallucinating, aren't I.

Not at all. Quite lucid except for a subtle difference in intended
semantics. Otherwise, it would have been a neat idea :-)

I think the general thing for people to consider, who are interested in this
stuff, is to understand the "data model" of WebDAV/DeltaV, if you will. For
example, the differences and relationships between plain resources,
version-controlled resources, version resources, baselines, baseline
collections, etc. There is a good start on all of that in the webdav-usage
document (http://svn.collab.net/repos/svn/trunk/www/webdav-usage.html), but
it also depends on a good working knowledge of the DeltaV specification
(http://www.webdav.org/deltav/). And some of that is further based on HTTP
modelling and WebDAV.

[ here is where Greg Hudson sadly shakes his head at the semantic overheads
  necessary to fully understanding SVN's networking mechanism :-) ]

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:37:09 2006

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.