Search code examples
svnversion-controlrepositorydump

SVN errors when i try to dump


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


Solution

  • 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