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

Yuya Nishihara yuya at tcha.org
Wed Jan 30 17:43:34 EST 2019


On Wed, 30 Jan 2019 14:18:29 -0500, Boris FELD wrote:
> On 29/01/2019 07:11, Yuya Nishihara wrote:
> > On Tue, 29 Jan 2019 09:25:34 +0100, Mathias De Maré wrote:
> >> 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"
> > That makes sense, thanks.
> >
> > The problem could be reproduced by adding --config format.usegeneraldelta=0
> > --config format.sparse-revlog=0 to test-clonebundles.t.
> Where are you adding this? We could not reproduce on our side.

Added it to "hg init server", and some repository mutation to clones.


More information about the Mercurial-devel mailing list