Betr: Re: Many missing revlogs, do we have a problem?
Simon King
simon at simonking.org.uk
Thu Jun 18 09:53:35 UTC 2015
On Thu, Jun 18, 2015 at 10:33 AM, Alban Hertroys
<alban.hertroys at apollovredestein.com> wrote:
> Simon King <simon at simonking.org.uk> wrote on 18/06/2015 11:13:11:
>
>> On Thu, Jun 18, 2015 at 9:55 AM, Alban Hertroys
>> <alban.hertroys at apollovredestein.com> wrote:
>> > On Wed, 2015-06-17 at 16:58 +0200, Alban Hertroys wrote:
>> >
>> >> > Looks like someone/something deleted all the files on your server.
>> > Take
>> >> > a look at .hg/store/data on both the client and server.
>> >>
>> >
>> >> That doesn't look like we've got a lot of deleted files there. Time
> to
>> >> figure out a way to generate sorted lists of files on both, so we can
>> > find
>> >> the differences.
>> >
>> > It turns out that our master repo is only missing two files compared
> to my
>> > local copy. The name of one of those two I remember from an error
> message
>> > I was getting trying to sync my local copy from the master (that's how
> I
>> > discovered that our master repo didn't verify OK).
>> > The other way around there are many more, but those are all files
> added to
>> > the repo after the 12th.
>> >
>> > Can I safely copy those 2 missing .i-files over to the master?
>> > If that works then I can at least finish updating the local copy so
> that
>> > we have a good repo with all the committed work; that's what we need
> for
>> > the new production server, so that would reduce the pressure on fixing
> the
>> > master repo by quite a bit.
>> >
>>
>> Out of interest, if you take a fresh clone from the server and run "hg
>> verify" in the clone, does it report any issues?
>
> I don't know, the clone gets rolled back due to the errors in the server's
> repo.
> There doesn't appear to be a way to prevent that rollback either.
>
OK, in that case, you could start by doing this:
1. Create an empty directory on your local system (let's call it "recovery")
2. Copy the .hg directory from the server into this recovery directory.
3. Run "hg verify" in the recovery directory. You will presumably get
the same set of errors that you get on the server
At this point, you could try adding the missing .i files into this
recovery repository, but I don't think that will be sufficient. From a
previous message of yours, it sounds like the fncache file (which
serves as an index of the revlogs in the repository) may have been
truncated.
Simon
More information about the Mercurial
mailing list