On Mon, 2008-03-10 at 16:15 -0700, bugzilla-daemon at np.grommit.com wrote:
> http://bugs.grommit.com/show_bug.cgi?id=244
> 
> 
> mike.kupfer at sun.com changed:
> 
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
>          AssignedTo|mike.kupfer at sun.com         |scm-migration-
>                    |                            |dev at opensolaris.org
>            Severity|critical                    |normal
>              Status|ASSIGNED                    |NEW
>            Priority|P3                          |P5
>    Target Milestone|tools putback               |ON migration
> 
> 
> 
> 
> ------- Comment #4 from mike.kupfer at sun.com  2008-03-10 16:15 PDT -------
> I looked at a couple different types of corruption:
> 
> - .hg/dirstate completely missing
> - .hg/dirstate a zero-length file

These two should result in a state equivalent to copying a bunch of
files into a working directory containing the null checkout (aka no
checkout).

> - last entry missing from dirstate

That should be mostly harmless.

> - 2nd 8KB block of dirstate replaced with 8KB from another file
> - 2nd 8KB block of dirstate replaced with nulls

These two will probably cause dirstate parsing to break.

We've got a handy command called debugrebuildstate that'll get you out
of these situations, assuming you're at tip.

We've effectively got three independent problems:

1) what do we do when we've lost track of what our parent is? (a or b)
2) how do we detect parsable but invalid data? (c, among others)
3) what do we tell the user to do when we have unparsable data? (d)

There's no easy fix for (1). (2) might be mostly fixed with a CRC check.
And debugrebuildstate might help for (3), but also might make things
more confusing (if you didn't have tip checked out). 

-- 
Mathematics is the supreme nostalgia of our time.


Reply via email to