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@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@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

Reply via email to