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

Re: Final(?) Relative Externals format

From: Michael Brouwer <michael_at_tlaloc.net>
Date: 2005-01-25 02:16:54 CET

On Jan 24, 2005, at 12:18 PM, Max Bowsher wrote:

> Below I propose what might just possibly become the final relative
> externals syntax. Comment, discuss, and then let's implement! ;-)
>
>
> For examples, I will use the external which is present in the cvs2svn
> repository,
> and rewrite it into each of the proposed relative forms.
>
> Existing absolute external:
> http://svn.collab.net/repos/svn/trunk/subversion/tests/clients/
> cmdline/svntest
>
>
> Relative form 1: Scheme-relative
> //svn.collab.net/repos/svn/trunk/subversion/tests/clients/cmdline/
> svntest
>
> This form is compliant with RFC 2396.
>
>
> Relative form 2: Host-relative
> /repos/svn/trunk/subversion/tests/clients/cmdline/svntest
>
> This form is compliant with RFC 2396.

How would you distinguish this from a path to a wc in the client?

> Relative form 3: Repository-relative
> ///../svn/trunk/subversion/tests/clients/cmdline/svntest

The use /// is equivalent to svk's usage of // (which the exception
that in svk you can't specify //../other_repo/

Also if I wanted to get to the tags/tag1 would it be:
////tags/tag1 or just ///tags/tag1?

Something else to keep in mind is that Repository-relative urls are
probably going to be used much more often (at least on the command
line) than Scheme-relative repositories, so it might be worth using //
for Repository-relative and /// for Scheme-relative. This would make
// do the same thing in svk and svn.

>
> The concept of a repository within the URL is fairly unique to
> Subversion, and hence no suitable syntax is expressed in RFC 2396.
> This form takes advantage of the fact that whilst the RFC explicitly
> specifies the meaning of a relative URL beginning with zero, one, or
> two slashes, it is silent on the matter of three or more slashes.
> Therefore I feel this is a good way to accomodate this very useful
> form of relativity into an unused (and unlikely to be used) void in
> the URI standard.
>
>
> Relative form 4: Directory-relative
> ../../svn/trunk/subversion/tests/clients/cmdline/svntest

How would you distinguish this from a path to a wc in the client?

> This form is compliant with RFC 2396.
> It is stretching the example somewhat, since it would break on tagging
> or branching cvs2svn, since "tags/foo" and "branches/foo" contain a
> different number of components to "trunk", but you should get the idea
> of what the syntax means, nonetheless.

Michael

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Jan 25 02:18:42 2005

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