"Hyrum K. Wright" <hyrum_wri...@mail.utexas.edu> writes: > On Tue, Apr 13, 2010 at 7:08 AM, Philip Martin > <phi...@codematters.co.uk>wrote: >> > The rep sharing cache is just a cache, and can be truncated or >> > deleted without impact on the correctness of the system. >> >> That's a way to fix a corrupt hotcopy but I don't think it prevents >> the corruption. >> > > What kind of corruption are we talking about? The file gets corrupted and > isn't recognized by SQLite as a valid database? It sees the file is a valid > database, but doesn't contain some rows? The data contained in the SQLite > data is wrong?
I think there is another problem in 1.6: the rep cache is one of the last things copied and so it could be newer than the rev files that got copied, which means it could refer to a rep that didn't get copied. A little experimentation shows that such a hotcopy will verify successfully, however a subsequent commit that uses the missing rep (which will succeed) produces a corrupt repository. I think we can avoid this by copying the rep cache before the rev files. -- Philip