Distilled from the report here:
http://mail-archives.apache.org/mod_mbox/subversion-dev/201110.mbox/%3C8762jkui4f.fsf@stat.home.lan%3E
svnadmin create repo
svn mkdir -mr1 file://`pwd`/repo/A
svn mkdir -mr2 file://`pwd`/repo/A/B
svn mkdir -mr3 file://`pwd`/repo/A/B/C
svn cp -mr4 file://`pwd`/repo/A file://`pwd`/repo/X
svn cp -mr5 file://`pwd`/repo/A file://`pwd`/repo/X/A
svn rm -mr6 file://`pwd`/repo/X/A
svn co file://`pwd`/repo/A wc
gdb -arg svn sw ^/X@5 wc
(gdb) b update_editor.c:add_directory
(gdb) r
breakpoint 1 (path=A)
(gdb) c
breakpoint 1 (path=A/B)
(gdb) c
breakpoint 1 (path=A/B/C)
(gdb) q
svn cleanup wc
svn sw ^/X wc
svn rm --force wc/A
svn up wc
After the cleanup status shows:
! wc
! wc/A
! wc/A/B
S wc/B
The subsequent switch produces a tree conflict:
! C wc/A
> local edit, incoming delete upon switch
! wc/A/B
Summary of conflicts:
Tree conflicts: 1
The forced delete and subsequent update don't remove all traces:
sqlite3 wc/.svn/wc.db "select op_depth, local_relpath, presence from nodes"
0|B/C|normal
0|B|normal
0|A/B|incomplete
0||normal
The row for A/B is wrong.