On 2012/11/20 12:07 PM, Daniel Shahaf wrote:
Stefan Sperling wrote on Tue, Nov 20, 2012 at 09:32:18 +0100:
On Tue, Nov 20, 2012 at 08:14:41AM +0200, Daniel Shahaf wrote:
Stefan Sperling wrote on Mon, Nov 19, 2012 at 21:07:59 +0100:
Extract these reps from the FSFS data of the temporary repository and
stitch them into the broken repository at appropriate places, recalculating
checksums where necessary,
Instead of recalculating, you ought to be able to set them to all-zeroes.
Ah, that's neat :)

Oh, and make sure to remove rows containing checksums of corrupted reps
from rep-cache.db. Alternatively, disable rep-sharing in fsfs.conf.
Else, you might end up with new revisions pointing at existing bad reps
But such pointers might already exist in revisions that were committed
after the committed revision and before it was fixed, right?

In which case - there is no easy way to find all of them (short of
exhaustive search), but fixing them should be easy (especially given that
the sha1 and uniquifier fields in rep reference lines are optional).

(in particular if people keep trying to add the same file again and
again under different names in an attempt to repair it.)

Thanks everyone for your input, I'll try those tips and if I get stuck again I'll post here again.

Reply via email to