[PATCH STABLE] revlog: make sure we never use sparserevlog without general delta (issue6056)

Mathias De Maré mathias.demare at gmail.com
Tue Jan 29 03:25:34 EST 2019


On Mon, Jan 28, 2019 at 1:21 PM Yuya Nishihara <yuya at tcha.org> wrote:

> On Fri, 25 Jan 2019 15:00:52 -0500, Boris Feld wrote:
> > # HG changeset patch
> > # User Boris Feld <boris.feld at octobus.net>
> > # Date 1548372167 18000
> > #      Thu Jan 24 18:22:47 2019 -0500
> > # Branch stable
> > # Node ID c7661fdcaeac457aa5b8ae6b6a10b259713934b9
> > # Parent  26ee61c33dee366576a0f7266fea9834985e78ec
> > # EXP-Topic issue6056
> > # Available At https://bitbucket.org/octobus/mercurial-devel/
> > #              hg pull https://bitbucket.org/octobus/mercurial-devel/
> -r c7661fdcaeac
> > revlog: make sure we never use sparserevlog without general delta
> (issue6056)
> >
> > We are getting user report where the delta code tries to use
> `sparse-revlog`
> > logic on repository where `generaldelta` is disabled. This can't work so
> we
> > ensure the two booleans have a consistent value.
> >
> > Creating this kind of repository is not expected to be possible and we
> weren't
> > able to create one for testing purpose. But if users run into this, we
> better
> > put stronger protection.
>
> Mathias, do you have any idea how the broken repository could be created?
>

I think the issue might be related to our use of streaming clonebundles and
a mismatch between some repositories on our server.
For one specific repository, I see on the server that .hg/requires contains
"revlogv1 store fncache dotencode".
On the client that cloned (and cannot commit), the requires contains:
"dotencode fncache generaldelta revlogv1 sparserevlog store"

I did an 'hg debugupgraderepo' on the server and regenerated the
clonebundle. Cloning again and committing on the client then works fine.

Greetings,
Mathias
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.mercurial-scm.org/pipermail/mercurial-devel/attachments/20190129/98f5928d/attachment.html>


More information about the Mercurial-devel mailing list