Post-commit processing is still node-by-node and goes through invalid database
states.
svnadmin create repo
svn mkdir --parents file://`pwd`/repo/A/B/C
svn co file://`pwd`/repo wc
svn cp wc/A wc/X
svn ci -mm wc
Interrupt the post-commit processing at the start of the second call to
commit_node(). Run "svn cleanup wc". Now:
$ sqlite3 wc/.svn/wc.db "select op_depth, local_relpath, presence from nodes
order by op_depth, local_relpath"
0||normal
0|A|normal
0|A/B|normal
0|A/B/C|normal
0|X|normal
0|X/B|normal
1|X/B/C|normal
The workqueue causes X/B to go through post-commit processing, but not X/B/C.
The database state is invalid: X/B/C op-depth=1.
Ideally moving the copied tree from WORK to BASE should happen in a single
transaction.