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. 
> 

Hmmm.

> > 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
> 
> 
> ===== PRIVACY AND CONFIDENTIALITY NOTICE =====
> 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.
> 

Reply via email to