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.
Relative form 3: Repository-relative
///../svn/trunk/subversion/tests/clients/cmdline/svntest
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
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.
Max.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Jan 24 21:19:21 2005