Corrupted repository... help?

Niko Matsakis niko at alum.mit.edu
Mon Nov 5 04:13:08 CST 2007


> I just upgraded to 10.5 and had some issues with the latest forest  
> extension and
> Mercurial 0.9.5, but no corruption issues. This sounds like a disk  
> corruption issue, I'd run the Mac OS disk utility
> and scan your disk for problems.

I have done so, but no problems were detected.  I'm not sure if there  
is a more thorough way of checking than "Verify Disk."  Can you  
explain to me what the error message means, and how it might indicate  
a disk failure? (as opposed to an internal bug in Mercurial)

> Did you do a backup before you installed 10.5?

Yes, of course... on a whim, I tried experimenting with the .hg  
directory from the backup.

First, I checked whether the backup exhibited a similar error, which  
it did not:

> $ cd /Path/To/Backup
> $ hg status

Then, I made a copy of my repository and copied the .hg directory from  
the backup.  I found that it exhibited the same error:

> $ cd /Path/To/Copy/Of/Repository
> $ mv .hg .hg.1
> $ cp -r /Path/To/Backup/.hg .
> $ hg status
> abort: data/Misc.vpdoc/store.vpsqlite.i: no node  
> f6bd5f13be26f08a5e183b958f14b73b241638b2!

I'm not precisely sure what this means.  I guess it means that the  
error lies in something in the state of the files, not the .hg  
contents.  In fact, thanks to the hourly backups performed by Time  
Machine, I also have a "before" and "after", but it seems that the  
problem originated over a weekend when I wasn't backing up hourly, so  
it's not terribly precise.

I did a diff -r nonetheless, but most of the entries were of the sort  
"binary files X and Y differ", so it wasn't terribly enlightening.   
The only thing I thought was interesting was that, while the file  
store.vpsqlite had changed, the corresponding store/data/.../ 
store.vpsqlite.i had not.  I guess that this means I didn't check this  
change in yet?  Or does it mean anything at all?


thanks again,
Niko Matsakis



More information about the Mercurial mailing list