I'm suspicious that the checks are not working because of the "pass
URLs as relpath" that you're doing.

I should add some canonical assertions for all the relpath params, and
get you to fix that bug :-)

> Also, this currently feeds paths to Ev2 child-first. For instance,
> copy test 67 calls this with 'X/Y/Z', 'X/Y', and 'X', in that order.
> The shims reorder things so that it gets done properly, but I wonder
> if there shouldn't be some state checks in Ev2 to ensure parents are
> added before children.

That wouldn't be too hard. We could mark the parent as "only allowed
to modify" (as long as it hasn't already been marked as
"added/unalterable").