In test-data/verification/commits, kfogel says, about revision 20 of main-cvsrepos: [Okay, problem: This revision creates branch B_MIXED, by copying revision 19 of trunk. But it fails to recopy 'proj/sub3/default' and 'proj/sub2/subsubA/default' from some revision earlier than 19, which it needs to do because in those files, B_MIXED sprouts from 1.2 and 1.1 respectively, not 1.3 and 1.2 (the latter being what you get if you just copy from revision 19). This means that the contents of those files are wrong in branches/B_MIXED/'s first incarnation. Even if they get fixed up in some later revision, there is still a period of wrongness.] The specifics of the failure are that the correct recopying is invoked, but because it is copying over already copied trees, RepositoryMirrror.change_path makes it a no-op, because, accoriding to its comment "The contract for copying over existing nodes is to do nothing and return".