[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Recovering repository with multiple missing rev/ files

From: Eiren Smith <eirens_at_gmail.com>
Date: Fri, 30 Jul 2010 15:43:12 -0400

On Jul 30, 2010, at 2:05 PM, Stefan Sperling wrote:

> On Fri, Jul 30, 2010 at 01:57:12PM -0400, Eiren Smith wrote:
>> Unfortunately, it appears I cannot create dump files from revisions
>> after a missing revs/ file gap. All the dumpfiles I created which
>> began with a revision past a point of continuity were unusable. They
>> collapsed upon re-import (svnadmin load …) into a single revision
>> instead of hundreds of revisions.
>>
>> Any idea why that might be or how I might get around it?
>
> Hard to tell from your description, it's a bit vague.
>
> Can you show us exactly what commands you typed while attempting to fix
> the problem? And any error message in the output? The more, the better.
> Extra noise does not hurt. Feel free to anonymize usernames, path names etc.
>
> Stefan

Stefan,

Thanks for your instantaneous response.

When I encountered this dumpfile problem a month ago, I realize now, I was under the (very likely incorrect) impresion that I might be able to do a dump of revs from the middle of the repo before restoring (even with a dummy revision) the missing revisions before the range I was trying to dump. Not sure what I thought it'd do about those gaps, but I hoped it'd find a way to ignore them for the most part. And e.g. "svnadmin dump repo_dir -r100:200 > dumpfile" didn't produce errors, but when I tried to load that dumpfile into a new repo (just to test it), it produced one revision. No errors, just one big revision. I don't know exactly why that was but my working theory is that it was because of the missing revs/ files before those revisions (lower rev numbers than the range being dumped).

Today I see that this "flat" dumpfile problem could perhaps be remedied by creating dummy revisions for any revisions before the revision range I want to dump. Worth a try.

So I tried that, sort of. To do this, I'd need to restore some revisions from my dumpfile backup (the one that's very old) as I can't manually make dummy revisions for those because I don't have modified file lists for those particular missing-from-repo-but-present-in-my-backup-dumpfile revisions. Plus, if I can replace them with real revision files instead of making dummy revisions/commits, awesome, right? Well, I got an error when I tried this. Here's what I did:

1. Loaded my dumpfile backup (the only one I have, the one which is far too old) into an empty repo.
2. Copied revision revs/7/7263 file from that dumpfile-backup-based repo into my production repo (the one missing some revs/ files -- I'll call it my corrupt repo).
3. Tried to dump that corrupt repo to ensure that my transplanted 7263 file was well received. Result:

...
* Dumped revision 7262.
svnadmin: Corrupt node-revision '0-5919.0.r7252/272624'
svnadmin: Missing id field in node-rev

So that's my current barrier. It might seem at this point that I should just dump from 1:7262 and then load that into a new repo because then 7263 will probably drop nicely on top of that without the error above. But if I did that and it worked, I'd get through a few more revisions until I came to the point where my backup dumpfile leaves off (rev 7307 is the last rev in my backup dumpfile) and I'd have to suture my corrupt repo onto that. I must suspect I'd run into the same problem "merging" this dumpfile-based repo with the later revisions from my corrupt repo as I countered after (3) above, which would leave me at an impasse.

Any ideas?

Thanks for your help.

/eiren
Received on 2010-07-30 21:43:56 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.