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

Re: SV: Accessing different revs via Apache?

From: Ben Collins-Sussman <sussman_at_collab.net>
Date: 2002-10-11 14:46:28 CEST

Morten Ludvigsen <morten_2ps_dk@yahoo.co.uk> writes:

> If I understand you WebDAV does not specify what to do with a GET of a
> directory, but it does specify what to do with a GET of a file ("internal
> member" in WebDAV terminology).

Correct.

WebDAV/DeltaV doesn't have a concept of "HEAD revision". It has a
concept called a baseline, which is essentially a snapshot or a tag in
general SCM terms. In mapping DeltaV concepts to Subversion, we
decided that mod_dav_svn would equate a baseline with a
revision... but baselines aren't necessarily ordered. There's no
necessary concept of the "latest" baseline in DeltaV. (gstein,
baselines aren't necessarily ordered, are they? Not unless each VCC
has a version history resource full of baselines!)

In our particular implementation, we just *happened* to decide that
the public URI space would represent the HEAD revision.... we're free
to choose what we want public resources to represent. We didn't have
to do that; we could have decided to have no public URIs at all. We
could have decided that to get any file from *any* revision, you'd have
to make a specific set of DeltaV queries... but we didn't. It seemed
friendlier to make a public URI mean "the resource from the latest
revision."

> In other words:
>
> 1. If I want to get the HEAD revision of the file
> "/resource/slam.html" I CAN use
> "GET [URL-to-repository-root]/resource/slam.html".

Yes, because our implementation just happens to work that way.

But if you want to write a 100% general DeltaV client, you'll need to
use a set of specical queries to discover the "latest" baseline (I'm
not sure if that's possible in general... gstein would have to say.)

>
> 2. If I want to get an earlier revision of the file
> "/resource/slam.html" I MUST use the WebDAV/DeltaV protocol.

Yes. In DeltaV terms, you want to fetch a particular "version resource"
(version of a file) from a particular baseline collection. So first
you must discover the URI of the the particular baseline you want.

> 3. If I want to get a list of files from the HEAD revision
> of the directory "/resource/" I SHOULD use the WebDAV/DeltaV protocol.
> (The directory listing Subversion supplies in response to a GET is
> implementation specific - so I should not rely on it).

Same answer as #1.

> 4. If I want to get a list of files from the an earlier revision
> of the directory "/resource/" I MUST use the WebDAV/DeltaV protocol.

Same answer as #2.

I think what I need to do is commit my "Summary-of-WebDAV" document to
our notes/ area of the tree, for others to read. It should be much
faster than plowing through RFC 2518 and 3253. Eventually, I'll merge
this document into an updated version of our "How Svn uses DAV"
document.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Oct 11 14:48:32 2002

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.