RE: Re: p42svn | svnadmin load gives bogus 'File already exists' error
From: Ted Burghart <ted_at_tedb.net>
Date: Thu, 4 Jun 2009 09:27:41 -0700 (PDT)
> > # grep -n -A8 -B1 trunk/prj/www/domain-name/elements/err/ /shared-
Close - the operations in question were more complex than p42svn picked up on. This commit was part of a reorganization that moved common files (like the ssi-based html error pages referenced) into a separate tree, then replaced the containing directories in the discrete site trees to symlinks pointing to the moved directories in the common tree.
Given Perforce's weak (to be kind) support for symlinks, it's not hard to miss the overall picture by looking at the changelists, but I do think p42svn should have been able to handle it. Instead it misinterpreted the link as a directory, so it was confused to find the files already existing in the real directory (target of the link). To be fair to p42svn, Perforce, in its stupidity, was maintaining separate metadata for each visible instance of each file, rather than just the one in the real directory, so the overall picture was heavily obscured.
Regardless, after many hours of dinking around with all sorts of stuff, including manual edits of the dump file, I finally just ran the import to the point where it broke then built overlayed trees of the p4 and svn projects and cycled through sync p4 @rev, use the p4 history to reconstruct the change from previous rev in svn, commit in svn then directly modify the svn repository transaction timestamp with svnadmin.
A royal PITA to be sure, but once I got into the flow it took less than a day, which was quicker than any other approach I could come up with and got the svn repository up and running with an accurate history.
I am overjoyed that I foresee no reason to ever have to do this again :)
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_subversion.tigris.org].
This is an archived mail posted to the Subversion Users mailing list.