I have a working SVN repository (CollabNet Subversion Edge 4.0.11) on Windows (2012 R2) with 62200 or so revs. I am moving it to a Linux RedHat 6.6 (CollabNet version 1.8.13) with Apache/2.2.29. I understand the best way to migrate is to dump the repository. So I ran the following dump command:
svnadmin dump -r 1:62268 F:\csvn\data\repositories\repos > G:\MyDump.dump
When I try to dump the windows repository I get an error at revision 4255:
svnadmin: E200002: Serialized hash malformed.
Next I run just after that point another dump cause I think I can sort that out by merging the adjacent revisions into the corrupted one so I run the following command:
svnadmin dump -r 4257:62268 F:\csvn\data\repositories\repos > G:\My2dump.dump
This comes up with a new error at revision 16153 that has me puzzled:
svnadmin: E140001: zlib (uncompress): corrupt data: Decompression of svndiff data failed
Then when I run a third dump, as I am a glutton or punishment. I use the following command:
svnadmin dump -r 16154:62268 F:\csvn\data\repositories\repos > G:\My3dump.dump
But it simply hangs and seems to be doing nothing. This repository goes back 10+ years and only the past 6 years is relevant. Can I somehow modify the dump to extract the past X number of years or revisions from the present that are not corrupt and load that into the new Repository? So I would dump starting from the present and go backwards so to speak? (just a thought) I dont have any good backups as those servers and tapes are gone with the last company move. Thanks, davidf
Can I somehow modify the dump to extract the past X number of years or revisions from the present that are not corrupt and load that into the new Repository?
Yes, theoretically - dump is readable text-file. But I'll suggest to detect "oldest needed" revision in repository (svn log -r {DATE}
) and create a set of (relatively small) dumps from REV to HEAD
So I would dump starting from the present and go backwards so to speak?
Only with "single revision per dump", and this will be nightmare. Dumps are created in another direction: "from oldest to newest"
Final note
I'm sure, you have (at least try) to check and fix damaged repository (read about svnadmin possibilities) with svnadmin verify|recover|pack