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


Reply via email to