Philip Martin wrote on Fri, 16 Mar 2018 13:44 +0000: > "NOCERA, ANDY" <an2...@att.com> writes: > > > I used dump and load to debug the malformed node revision ID. Here > > are my steps and what learned. Looks like the revs' file text: entry > > has a zero instead of size. By just editing the size, verify worked. > > No other change was required. The question is can we correct this > > ourselves without a dump and load? > > > > db/revs/0/1 /usr/tmp/xrepox/db/revs/0/1 > > diff db/revs/0/1 /usr/tmp/xrepox/db/revs/0/1 > > 18c18 > > < text: 1 76 48 0 ec69809945c46f2bb74e99a3ff7cd917 > > --- > > > text: 1 76 48 48 ec69809945c46f2bb74e99a3ff7cd917 > > 22c22 > > That looks like issue 4554 > > https://issues.apache.org/jira/projects/SVN/issues/SVN-4554 > > Editing the file is unlikely to work. Later revisons refer to data in > earlier revisions via a byte offset into the earlier file. When you > edit "0" to "48" you have changed the byte offset of all the data beyond > the edit and that breaks the references in all the later files.
Changing "0" to "48" would also have broken the <root-offset> and <cp-offset> offsets in that revision file, so how come 'verify' worked after that change? Cheers, Daniel (The <foo-offset> terms are from the 'structure' file and describe format 6; format 7 has <l2p offset> and <p2l offset> which are analogous)