Hi,

When using `svn copy --pin-externals` to create a tag, svn:externals with a relative path get pinned a non existing path: They get pinned to the revision before the commit, but the path doesn't exist yet in that revision. I expected them to be pinned to the revision which gets created during the svn copy operation.

In the example below:
  actual result: A/D - ../B/lambda@2 lambda
  expected result: A/D - ../B/lambda@3 lambda

Please find the script to reproduce this attached. Commented excerpt:

  cd A/D/
  svn propset svn:externals "../B/lambda lambda" . # relative path
  svn commit -m "msg1" # creates revision 2
  cd ../..
  svn copy --pin-externals ${URL}/trunk ${URL}/tags/pinnedExternals -m "msg2" # creates revision 3
  svn switch ^/tags/pinnedExternals
  # gives warnings:
  #   svn: warning: W205011: Error handling externals definition for 'A/D/lambda':   #   svn: warning: W170000: URL 'file:///tmp/pinExternalsBug/repos/tags/pinnedExternals/A/B/lambda' at revision 2 doesn't exist
  svn propget -R svn:externals
  # gives: A/D - ../B/lambda@2 lambda
  #   i.e. pinned to revision 2, but the path doesn't exist (created in revision 3)
  #   I would expect: A/D - ../B/lambda@3 lambda


Tested on Kubuntu 20.04.3 LTS and SUSE Linux Enterprise Server 15 SP3  (x86_64) with: - todays trunk (Revision: 1897960): svn, version 1.15.0-dev (under development) compiled Feb 11 2022, 08:01:11 on x86_64-pc-linux-gnu
- svn, version 1.14.1 (r1886195)
- svn, version 1.13.0 (r1867053)   compiled Mar 24 2020, 12:33:36 on x86_64-pc-linux-gnu
- svn, version 1.10.6 (r1863367)

Best regards
Martin

Attachment: repro-template.sh
Description: application/shellscript

Reply via email to