<http://subversion.tigris.org/issues/show_bug.cgi?id=1532>
svn switch ^/dir_url file_path # This worked, but then ... svn switch ^/file_url file_path # this errored out. I filed this issue back in 2003 and it was unfixable then, but with WC-NG it should be relatively easy, so I'm trying. We don't strictly need to do this for 1.7.0, but if it is supposed to be easy with WC-NG then actually doing it should be a good test that we've got things right. After trying naively to fix it just by anchoring the reporter/editor drive at the parent directory (even when the target starts out as a directory), I found there is a problem at an earlier stage. Starting from a clean greek-tree checkout: $ svn switch ^/iota wc/A/C D wc/A/C A wc/A/C $ cat wc/A/C This is the file 'iota'. $ svn status wc/A/C ### No output. Should be 'S'. $ svn info wc/A/C Node Kind: file URL: file:///.../repos/A/C ### Should be '.../iota'. ... The node at 'A/C' on disk has been switched to be a file, and some of the metadata updated accordingly, but the URL in the metadata has not been changed. Tracing it through, the "delete" part looks OK; the result in NODES is local_relpath = A/C op_depth = 0 parent_relpath = A repos_id = 1 repos_path = A/C revision = 1 presence = not-present kind = dir Then, in update_editor.c:make_file_baton(), fb->new_relpath gets set to 'A/C'. The logic that is used in make_dir_baton() correctly accounts for a switch to a directory, so I'm using that logic in make_file_baton() also. Fixed in r1143357. Now back to the original problem, switching the switched path back to the original path. - Julian