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

Re: [vote] pin-externals branch to trunk

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Tue, 3 Feb 2015 12:25:01 +0000

Stefan Sperling wrote:
> Below is a full log message for the entire changeset.

This proposed log message seems to contain the documentation of the feature. Can we put the documentation somewhere more widely accessible?

- in the book?
- in the issue tracker [3]?

or at least document it here in email to begin with and then it can be copied into such a place.

> [[[
> Add a '--pin-externals' option to 'svn copy'.
> This option enables automated pinning of URLs in svn:externals properties
> during copy operations (issue #1258).
>
>   --pin-externals          : pin externals with no explicit revision to their
>                              last-changed revision (recommended when tagging)

On the branch this help text now says:

  --pin-externals          : pin externals with no explicit revision to their
                             current revision (recommended when tagging)

Would this be slightly better?

                             pin each external with no explicit revision to the
                             copied revision (recommended when tagging)

> This feature makes the svncopy.pl contrib script unnecessary.

Perhaps now adjust svncopy.pl's help text to mention that its '--pin-externals' option is similar to 'svn copy --pin-externals'?

To be clear, this makes the use of svncopy.pl unnecessary for this purpose. There is another mode of svncopy -- 'svncopy --update-externals' -- which rewrites absolute externals that point within the copied subtree, which is largely obsolete since relative externals were introduced, but which is not directly replaced by this new feature.

> Externals are "pinned" by adding a peg revision to the external's
> source URL.
> For example, the external definition:
>   ^/foo/bar ext_bar
> might become:
>   ^/foo/bar_at_400 ext_bar
>
> An external that is already pinned is left as-is.

Could you expand this to mention both peg rev and operative rev, and both the old and new formats? For deciding whether the external
definition needs to be adjusted, after reading the book [1,2] I
understand that the question "is it pinned?" translates to "is a peg
revision OR an operative revision specified?".

When we change the
definition to make it pinned, we add a peg
revision. The example shows the new format (URL first).
If the definition is in the old (PATH URL) format, do we change it to
"PATH -rX URL" to keep using the old syntax with a peg rev, or convert to new syntax
"URL_at_X PATH"? I think keeping the old format would be better, in that
old (pre-1.5) clients may possibly still be using the repository and they would
break if we changed to the new syntax.

> [...]
> ]]]

[1] <http://svnbook.red-bean.com/nightly/en/svn.advanced.externals.html>
[2] <http://svnbook.red-bean.com/nightly/en/svn.advanced.pegrevs.html>
[3] issue #1258 "tag svn:externals on copy" http://subversion.tigris.org/issues/show_bug.cgi?id=1258

- Julian
Received on 2015-02-03 13:26:20 CET

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