subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Shahaf <>
Subject Re: How to fix corrupt revision in repo?
Date Fri, 16 Sep 2011 02:28:56 GMT
David Hopkins wrote on Fri, Sep 16, 2011 at 08:30:14 +0800:
> Thanks Daniel. Responses inline. 
> >> David Hopkins wrote on Thu, Sep 15, 2011 at 10:30:46 +0800: I'm not
> sure 
> >> why the verification command for revision 192 would throw an error 
> >> description for revision 162. Revision 192 affected a completely 
> >> different part of the repository to revision 162, so there is no
> obvious 
> >> relationship between them. 
> >
> > Possibly due to rep-sharing? Does db/revs/0/192 contain the number
> "162" 
> > in ASCII decimal delimited by whitespace? You can check that with the 
> > following command: grep -a "^text:" db/revs/0/192 
> Yes it does.
> Here's the context in the rev file:
> id: y-31.0-32.r192/673830
> type: file
> pred: y-31.0.r31/264323
> count: 1
> text: 162 670867 6111 52486 5117fb0964ca1a78dd97447d23452e73
> 609f4745460d6e14860daff0803ee7024c54898c 191-5r/_m

That tells you that the 6111 bytes starting at offset 670867(bytes) into
the r162 rev file are a representation generating a file whose checksums
and uniquifier are given later.  See subversion/libsvn_fs_fs/structure
for details --- basically, it's DELTA\n or PLAIN\n up through ENDREP\n.

> cpath: [redacted]
> copyroot: 32 [redacted]
> Looking at the other nearby entries, they have "text: 192 [...]" 
> instead of "text: 162 [...]". Is that likely to be the problem?

It's normal for r192 to contain "text: 162" if rep-sharing is enabled or
if you did a copy-without-textmods from r162.

> > Does 'svnadmin dump -r 162 >NUL' work ? 
> Yes it does. 


> > To answer your question: yes, most definitely a copy of the r192
> (and/or 
> > r162) rev file would allow to pinpoint the problem, however you might 
> > not want to share those files on a public list as they may contain 
> > sensitive data (versioned file contents). 
> I'll find out if I can release the broken revisions in their entirety.

Perhaps someone would be willing to have a look at those two revision
files privately.

(In fact, I might be able to do this too.  But I'm reluctant to make
a promise or commitment about this.)

> The corrupted revision doesn't actually contain anything particularly 
> important (almost all the modified files in it have since been replaced
> by newer versions anyway). Can I fix the repository by dumping every 
> revision except 192, and then reloading the good revisions into a new 
> repo? Or will cause problems for the revisions after 192 since one of
> the revisions no longer exists?

That won't work if files after r192 are stored as deltas against the
fulltext of r192.

> Regards,
> David Hopkins
> Serck Controls
> The information contained in this message is intended for the named recipient only. 
It may contain privileged and confidential information.  If you are not the intended recipient,
you must not copy, distribute, take any action in reliance on it, or disclose any details
of the message to any person, firm or corporation. If you have received this message in error,
please notify the sender immediately by reply e-mail and delete all copies of this transmission
together with any attachments.
> The views or opinions expressed in this e-mail or any attachment are not necessarily
those of Serck Controls Pty Ltd.
> NOTE - You should carry out your own virus checks before opening any attachment.

View raw message