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