It turns out this is a bug in the WorkingTree4.move() logic.
Basically, when moving a directory, child entries were improperly renamed such that the reference pointed to the directory instead of the child. (example, if you moved dir/subdir => subdir, then dir/subdir/file would have a rename pointer to subdir, rather than subdir/file).
There is a fix in the associated branch. And this should be merged for 0.15
It turns out this is a bug in the WorkingTree4.move() logic.
Basically, when moving a directory, child entries were improperly renamed such that the reference pointed to the directory instead of the child. (example, if you moved dir/subdir => subdir, then dir/subdir/file would have a rename pointer to subdir, rather than subdir/file).
There is a fix in the associated branch. And this should be merged for 0.15