You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Stefan Sperling <st...@elego.de> on 2010/07/13 12:15:22 UTC

Re: Unclear syntax for relative addressing of svn:externals, on RHEL 5, subversion-1.6.12

On Mon, Jul 12, 2010 at 05:57:24PM -0400, Nico Kadel-Garcia wrote:
> I don't know why the syntax was reversed: it really looks like an
> entirely unnecessary parsing complication.

The new syntax looks more like 'svn checkout', so it's more natural
to use when you're already used to svn checkout.

> I would change it like this:

I think we should discourage use of the old syntax in both the output
of svn help and in the book. Diff to the help text below.
Would this improve things?

Stefan


--- /tmp/old	Tue Jul 13 14:00:00 2010
+++ /tmp/mine	Tue Jul 13 14:13:50 2010
@@ -1,23 +1,23 @@
     svn:externals  - A newline separated list of module specifiers,
-      each of which consists of a relative directory path, optional
-      revision flags and an URL.  The ordering of the three elements
-      implements different behavior.  Subversion 1.4 and earlier only
-      support the following formats and the URLs cannot have peg
-      revisions:
-        foo             http://example.com/repos/zig
-        foo/bar -r 1234 http://example.com/repos/zag
-      Subversion 1.5 and greater support the above formats and the
-      following formats where the URLs may have peg revisions:
-                http://example.com/repos/zig@42 foo
-        -r 1234 http://example.com/repos/zig foo/bar
-      Relative URLs are supported in Subversion 1.5 and greater for
-      all above formats and are indicated by starting the URL with one
-      of the following strings
+      each of which consists of a URL relative directory path, similar
+      to the syntax of the 'svn checkout' command:
+        http://example.com/repos/zag foo/bar
+      An optional peg revision may be appended to the URL to pin the
+      external to a known revision:
+        http://example.com/repos/zig@42 foo
+      Relative URLs are indicated by starting the URL with one
+      of the following strings:
         ../  to the parent directory of the extracted external
         ^/   to the repository root
         //   to the scheme
         /    to the server root
-      The ambiguous format 'relative_path relative_path' is taken as
-      'relative_url relative_path' with peg revision support.
       Lines in externals definitions starting with the '#' character
       are considered comments and are ignored.
+      Subversion 1.4 and earlier only support the following formats
+      where the URLs cannot have peg revisions and cannot be relative:
+        foo             http://example.com/repos/zig
+        foo/bar -r 1234 http://example.com/repos/zag
+      Use of these formats is discouraged. They should only be used if
+      interoperability with 1.4 clients is desired.
+      The ambiguous format 'relative_path relative_path' is taken as
+      'relative_url relative_path' with peg revision support.

Re: Unclear syntax for relative addressing of svn:externals, on RHEL 5, subversion-1.6.12

Posted by Stefan Sperling <st...@elego.de>.
On Tue, Jul 13, 2010 at 09:08:27AM -0700, Blair Zajac wrote:
> On 07/13/2010 05:15 AM, Stefan Sperling wrote:
> >I think we should discourage use of the old syntax in both the output
> >of svn help and in the book. Diff to the help text below.
> >Would this improve things?
> 
> Sounds good to me.
> 
> I think this last sentence starting with "The ambiguous format..."
> should go before 1.4 is mentioned because it is relevant to the 1.5
> format.

Good catch, thanks.
Committed with further tweaks and some typos fixed in r981653.
Sorry about the delay.

Does anyone feel like submitting a similar patch to the book?
In particular about making the book discourage use of the 1.4-and-earlier
syntax?

Thanks,
Stefan

Re: Unclear syntax for relative addressing of svn:externals, on RHEL 5, subversion-1.6.12

Posted by Blair Zajac <bl...@orcaware.com>.
On 07/13/2010 05:15 AM, Stefan Sperling wrote:
> On Mon, Jul 12, 2010 at 05:57:24PM -0400, Nico Kadel-Garcia wrote:
>> I don't know why the syntax was reversed: it really looks like an
>> entirely unnecessary parsing complication.
>
> The new syntax looks more like 'svn checkout', so it's more natural
> to use when you're already used to svn checkout.
>
>> I would change it like this:
>
> I think we should discourage use of the old syntax in both the output
> of svn help and in the book. Diff to the help text below.
> Would this improve things?

Sounds good to me.

I think this last sentence starting with "The ambiguous format..." 
should go before 1.4 is mentioned because it is relevant to the 1.5 format.

Blair

Re: Unclear syntax for relative addressing of svn:externals, on RHEL 5, subversion-1.6.12

Posted by Nico Kadel-Garcia <nk...@gmail.com>.
Give the man a cigar, he's captured what I was looking for.

On Tue, Jul 13, 2010 at 8:15 AM, Stefan Sperling <st...@elego.de> wrote:
> On Mon, Jul 12, 2010 at 05:57:24PM -0400, Nico Kadel-Garcia wrote:
>> I don't know why the syntax was reversed: it really looks like an
>> entirely unnecessary parsing complication.
>
> The new syntax looks more like 'svn checkout', so it's more natural
> to use when you're already used to svn checkout.
>
>> I would change it like this:
>
> I think we should discourage use of the old syntax in both the output
> of svn help and in the book. Diff to the help text below.
> Would this improve things?
>
> Stefan
>
>
> --- /tmp/old    Tue Jul 13 14:00:00 2010
> +++ /tmp/mine   Tue Jul 13 14:13:50 2010
> @@ -1,23 +1,23 @@
>     svn:externals  - A newline separated list of module specifiers,
> -      each of which consists of a relative directory path, optional
> -      revision flags and an URL.  The ordering of the three elements
> -      implements different behavior.  Subversion 1.4 and earlier only
> -      support the following formats and the URLs cannot have peg
> -      revisions:
> -        foo             http://example.com/repos/zig
> -        foo/bar -r 1234 http://example.com/repos/zag
> -      Subversion 1.5 and greater support the above formats and the
> -      following formats where the URLs may have peg revisions:
> -                http://example.com/repos/zig@42 foo
> -        -r 1234 http://example.com/repos/zig foo/bar
> -      Relative URLs are supported in Subversion 1.5 and greater for
> -      all above formats and are indicated by starting the URL with one
> -      of the following strings
> +      each of which consists of a URL relative directory path, similar
> +      to the syntax of the 'svn checkout' command:
> +        http://example.com/repos/zag foo/bar
> +      An optional peg revision may be appended to the URL to pin the
> +      external to a known revision:
> +        http://example.com/repos/zig@42 foo
> +      Relative URLs are indicated by starting the URL with one
> +      of the following strings:
>         ../  to the parent directory of the extracted external
>         ^/   to the repository root
>         //   to the scheme
>         /    to the server root
> -      The ambiguous format 'relative_path relative_path' is taken as
> -      'relative_url relative_path' with peg revision support.
>       Lines in externals definitions starting with the '#' character
>       are considered comments and are ignored.
> +      Subversion 1.4 and earlier only support the following formats
> +      where the URLs cannot have peg revisions and cannot be relative:
> +        foo             http://example.com/repos/zig
> +        foo/bar -r 1234 http://example.com/repos/zag
> +      Use of these formats is discouraged. They should only be used if
> +      interoperability with 1.4 clients is desired.
> +      The ambiguous format 'relative_path relative_path' is taken as
> +      'relative_url relative_path' with peg revision support.
>