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

Using DeltaV was Re: Official revision syntax for Subversion URLs

From: Justin Erenkrantz <justin_at_erenkrantz.com>
Date: 2003-08-06 11:31:09 CEST

--On Tuesday, August 5, 2003 7:57 PM -0400 Garrett Rooney
<rooneg@electricjellyfish.net> wrote:

> It's an implementation detail of libsvn_ra_dav and mod_dav_svn, and it's one
> that we've already had to change once, so telling people to use it seems
> like a bad idea.

Well, not quite. The !svn location is where the DeltaV(-like) components
figure out how to access old versions.

So, if you want to access resources that are versioned over HTTP, use DeltaV.
We don't need to come up with our own scheme as this is a solved problem and
one we support already (for the most part). (Read RFC 3253. Section 5 is a
good start.) The !svn location is required on our part to satisfy the DeltaV
requirements (it's also where the DeltaV activities are stored).

If you want to be precise, we already have this all right now - all versions
are already exposed via HTTP and they are rooted at the 'real' repository
root. It's just that to find out what the URL for the 'other' non-HEAD
version is, you need to use DeltaV to find whether the admin changed !svn to
something else (and because we're free to change that or any other path
component at anytime -i.e. ver - the URLs *can* be disjoint or even on
separate severs).

Yet, since mod_dav_svn knows where the 'root' of the repository is, it's free
to return back in an automated manner:

<http://suckfish.mine.nu/svn/test/!svn/ver/10/subdir/foo.txt>

in a response to a query for version 10 for foo.txt. (What we're a bit
non-DeltaV is on our report format. But, that's relatively minor.)

Now, if you want to talk about a *user interface* for selecting old revisions,
fine - keep at it. But, none of what everyone is talking about should ever be
actually transmitted on the wire by any Subversion client.

Subversion should use DeltaV and encourage every HTTP client that wants old
versions to do the same. A tool like ViewCVS (w/SVN support) can bridge the
gap for those HTTP clients that aren't DeltaV-aware. So, those people can use
something like:

<http://svn.collab.net/viewcvs-dev/*checkout*/svn/trunk/COMMITTERS?rev=6188>

Subversion itself never needs to know about or support these URLs. (It's
unofficial, but we're not into kludges in SVN land.)

ra_svn can come up with its own format, if Greg Hudson likes. But, I'll
downright near veto anything that moves us away from DeltaV in ra_dav. In
order to be truly DeltaV-compliant wrt REPORTing versions, we might have to do
some additional work. But, that's the direction I'd like to see us move
towards - not away from DeltaV-compliance. And, adding another mechanism to
do retrieval of historical versions in HTTP would detract from that. -- justin

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Aug 6 11:32:00 2003

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.