A wc-to-wc copy, where part of the source is switched, followed by a commit will
not commit the switched part of the destination correctly:
$ svnadmin create repo
$ REPO=file://`pwd`/repo
$ svn mkdir $REPO/zig -m ""
$ svn co $REPO wc1
$ echo foo1 > wc1/zig/foo
$ svn add wc1/zig/foo
$ svn ci wc1 -m ""
$ svn cp wc1/zig wc1/zag
$ svn ci wc1 -m ""
$ svn sw $REPO/zag/foo wc1/zig/foo
$ echo foo2 > wc1/zig/foo
$ svn ci wc1 -m""
$ svn cp wc1/zig wc1/bar
$ svn cp wc1/zig $REPO/bar2 -m""
$ svn ci wc1 -m ""
$ svn co $REPO wc2
The wc-to-wc copy works in the working copy, these two files are the same:
$ diff wc1/zig/foo wc1/bar/foo
The commit of the copy doesn't work properly, these files are different:
$ diff wc1/bar/foo wc2/bar/foo
even though svn info shows that they have the same URL/revision.
The wc-to-repos copy/commit works, these files are the same:
$ diff wc1/bar/foo wc2/bar2/foo
Note: the working copy used to make the wc-to-wc copy/commit now has a problem,
the text-base doesn't match the repository. Further attempts to commit
wc1/bar/foo will fail with a checksum error.