[PATCH 08 of 15] clone: allow bundle2's stream clone with 'server.disablefullbundle'
Augie Fackler
raf at durin42.com
Fri Jan 19 20:27:02 UTC 2018
On Fri, Jan 19, 2018 at 09:08:52PM +0100, Boris Feld wrote:
> # HG changeset patch
> # User Boris Feld <boris.feld at octobus.net>
> # Date 1516203512 -3600
> # Wed Jan 17 16:38:32 2018 +0100
> # Node ID 77a0634011b5bc89472a134c5ea2b5623f6ca273
> # Parent b11f4652647e791727e14c94a0ccb7c0282c5a29
> # EXP-Topic b2-stream
> # Available At https://bitbucket.org/octobus/mercurial-devel/
> # hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 77a0634011b5
> clone: allow bundle2's stream clone with 'server.disablefullbundle'
That is, prior to this patch server.disablefullbundle also banned
streaming clones even if streaming clones were enabled? Did I get that
right?
>
> The previous check was a bit too strict and would not recognize a get bundle
> not requesting changegroup.
>
> diff --git a/mercurial/wireproto.py b/mercurial/wireproto.py
> --- a/mercurial/wireproto.py
> +++ b/mercurial/wireproto.py
> @@ -855,10 +855,11 @@ def getbundle(repo, proto, others):
> if repo.ui.configbool('server', 'disablefullbundle'):
> # Check to see if this is a full clone.
> clheads = set(repo.changelog.heads())
> + changegroup = opts.get('cg', True)
> heads = set(opts.get('heads', set()))
> common = set(opts.get('common', set()))
> common.discard(nullid)
> - if not common and clheads == heads:
> + if changegroup and not common and clheads == heads:
> raise error.Abort(
> _('server has pull-based clones disabled'),
> hint=_('remove --pull if specified or upgrade Mercurial'))
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list