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