Description
$ svnadmin create repos $ svn mkdir --parents file:///%CD%/repos/A/B/C -m "" $ svn cp file:///%CD%/repos/A file:///%CD%/repos/AA -m "" $ svn co file:///%CD%/repos/A A $ svn switch ^/AA/B A/B $ svn rm file:///%CD%/repos/AA $ svn up A This will remove the directory B from A. Future updates of A won't bring back A/B. Workaround: $ svn up A/B $ svn co file:///%CD%/repos svntest.main.run_svn(None, 'cp', sbox.repo_url + '/A', sbox.repo_url + '/AA', '-m', 'Q') svntest.main.run_svn(None, 'co', sbox.repo_url + '/A', sbox.wc_dir) svntest.main.run_svn(None, 'switch', sbox.repo_url + '/AA/B', sbox.wc_dir + '/B') svntest.main.run_svn(None, 'rm', sbox.repo_url + '/AA/B', '-m', 'Q') expected_output = svntest.wc.State(wc_dir, { 'B' : Item(status='D '), }) expected_status = svntest.wc.State(wc_dir, { '' : Item(status=' ', wc_rev='3'), 'D' : Item(status=' ', wc_rev='3'), 'D/G' : Item(status=' ', wc_rev='3'), 'D/G/rho' : Item(status=' ', wc_rev='3'), 'D/G/pi' : Item(status=' ', wc_rev='3'), 'D/G/tau' : Item(status=' ', wc_rev='3'), 'D/H' : Item(status=' ', wc_rev='3'), 'D/H/omega' : Item(status=' ', wc_rev='3'), 'D/H/chi' : Item(status=' ', wc_rev='3'), 'D/H/psi' : Item(status=' ', wc_rev='3'), 'D/gamma' : Item(status=' ', wc_rev='3'), 'C' : Item(status=' ', wc_rev='3'), 'mu' : Item(status=' ', wc_rev='3'), }) # Before r1435684 the inherited properties code would try to fetch # inherited properties for ^/AA/B and fail. # # The inherited properties fetch code would then bail and forget to reset # the ra-session URL back to its original value. # # After that the update code (which ignored the specific error code) was # continued the update against /AA/B (url of missing switched path) # instead of against A (the working copy url). # This update removes 'A/B', since its in-repository location is removed. svntest.actions.run_and_verify_update(wc_dir, expected_output, None, expected_status) expected_output = svntest.wc.State(wc_dir, { 'B' : Item(status='A '), 'B/lambda' : Item(status='A '), 'B/E' : Item(status='A '), 'B/E/alpha' : Item(status='A '), 'B/E/beta' : Item(status='A '), 'B/F' : Item(status='A '), }) expected_status = svntest.wc.State(wc_dir, { '' : Item(status=' ', wc_rev='3'), 'D' : Item(status=' ', wc_rev='3'), 'D/G' : Item(status=' ', wc_rev='3'), 'D/G/rho' : Item(status=' ', wc_rev='3'), 'D/G/pi' : Item(status=' ', wc_rev='3'), 'D/G/tau' : Item(status=' ', wc_rev='3'), 'D/H' : Item(status=' ', wc_rev='3'), 'D/H/omega' : Item(status=' ', wc_rev='3'), 'D/H/chi' : Item(status=' ', wc_rev='3'), 'D/H/psi' : Item(status=' ', wc_rev='3'), 'D/gamma' : Item(status=' ', wc_rev='3'), 'B' : Item(status=' ', wc_rev='3'), 'B/E' : Item(status=' ', wc_rev='3'), 'B/E/alpha' : Item(status=' ', wc_rev='3'), 'B/E/beta' : Item(status=' ', wc_rev='3'), 'B/F' : Item(status=' ', wc_rev='3'), 'B/lambda' : Item(status=' ', wc_rev='3'), 'C' : Item(status=' ', wc_rev='3'), 'mu' : Item(status=' ', wc_rev='3'), })
Attachments
Issue Links
- blocks
-
SVN-1906 updates that delete switched items are confusing
- Open
-
SVN-4001 update fails to replace a file external with an actual node
- Open
-
SVN-3013 cannot svn switch to a deleted path (not a peg-revision issue)
- Closed
- is depended upon by
-
SVN-1906 updates that delete switched items are confusing
- Open
-
SVN-4001 update fails to replace a file external with an actual node
- Open
-
SVN-3013 cannot svn switch to a deleted path (not a peg-revision issue)
- Closed