At the moment, update_editor.c's open_directory() is installing a new
revision and 'incomplete' flag, but is *not* installing a new URL
during a switch. If you allow 'svn switch' to finish to completion,
some post-update processing recursively rewrites urls throughout the
switched area. But if you interrupt the switch, you'll potentially
end up with a visible directory (i.e. linked to its parent),
incomplete, and which claims to be a URL it's not. This means that
'svn switch' really isn't restartable.
Mike and I have a patch in progress to remedy this -- it essentially
makes sure that open_directory() installs the correct 'switch' url
immediately. But we've run into other complexities in making it work.
Attaching the patch below.