On Fri, Mar 16, 2018 at 4:57 PM, Philip Martin <phi...@codematters.co.uk> wrote: > Daniel Shahaf <d...@daniel.shahaf.name> writes: > >> Philip Martin wrote on Fri, 16 Mar 2018 13:44 +0000: >> >> 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? > > In the examples he gave it looks like the root node itself is being > edited. That works because the change is after <root-offset> but before > <cp-offset> and he shows <cp-offset> changing as well. > > I guess you can get away with editing the last node in the file provided > you also change <cp-offset> in the same file.
Does that also explain why the OP could repair some repositories by simply dumping and loading them? Or would dump+load also work for corruption-instances that are not on the root node? >From the perspective of the recoveries done by the OP, this doesn't seem like a "breaking corruption", since it can be recovered from quite easily. If that is not the case, and some unrecoverable instances remain (that cannot be dumped+loaded), can we offer any other suggestions to recover? -- Johan