I've finally got to the bottom of the last thing preventing me doing a completely clean conversion.
The same label was used three times, in three different subdirectories. The problem is in the sanity checker, which doesn't update its internal tree during the copy if the target directory already exists (because of an earlier labelling of a child project). When the third label happens the sanity checker thinks some parent directories don't exist when they actually do so it adds them, breaking the svnadmin load which knows that the directories really do exist. If that description made no sense, read the test case at the end of this e-mail. I've also attached a patch, as before. Richard. -----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<----- **** make-broken-db.bat setlocal set SSDIR=c:\vss\test\db ss create -YAdmin -I- $/one ss create -YAdmin -I- $/one/two ss create -YAdmin -I- $/one/three ss create -YAdmin -I- $/one/three/four sleep 2 ss label -YAdmin -Lmy_label -I- $/one/two sleep 2 ss label -YAdmin -Lmy_label -I- $/one sleep 2 ss label -YAdmin -Lmy_label -I- $/one/three/four endlocal -----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<----- **** SanityChecker.pm.r337.patch Index: script/Vss2Svn/Dumpfile/SanityChecker.pm =================================================================== --- script/Vss2Svn/Dumpfile/SanityChecker.pm (revision 337) +++ script/Vss2Svn/Dumpfile/SanityChecker.pm (working copy) @@ -369,6 +369,7 @@ if(defined($ref->{$item})) { # item already exists; can't add it + $ref->{$item} = $newref if defined($newref); return 0; } _______________________________________________ vss2svn-users mailing list Project homepage: http://www.pumacode.org/projects/vss2svn/ Subscribe/Unsubscribe/Admin: http://lists.pumacode.org/mailman/listinfo/vss2svn-users-lists.pumacode.org Mailing list web interface (with searchable archives): http://dir.gmane.org/gmane.comp.version-control.subversion.vss2svn.user