clone: allow bundle2's stream clone with 'server.disablefullbundle'
The previous check was a bit too strict and would not recognize a get bundle
not requesting changegroup.
--- a/mercurial/wireproto.py Wed Jan 17 16:36:23 2018 +0100
+++ b/mercurial/wireproto.py Wed Jan 17 16:38:32 2018 +0100
@@ -866,10 +866,11 @@
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'))