diff --git a/hgext/narrow/narrowbundle2.py b/hgext/narrow/narrowbundle2.py --- a/hgext/narrow/narrowbundle2.py +++ b/hgext/narrow/narrowbundle2.py @@ -78,7 +78,7 @@ filematcher=diffmatcher, fullnodes=commonnodes) # XXX: we should also prevent manifests - reqparts = ('manifest', 'dirlogs', 'filelog') + reqparts = ('dirlogs', 'filelog') cgdata = packer.generate(set([nullid]), list(commonnodes), False, 'narrow_widen', parts=reqparts) diff --git a/mercurial/changegroup.py b/mercurial/changegroup.py --- a/mercurial/changegroup.py +++ b/mercurial/changegroup.py @@ -862,6 +862,8 @@ yield chunk for delta in deltas: + if not tree and 'manifest' not in parts: + continue chunks = _revisiondeltatochunks(delta, self._builddeltaheader) for chunk in chunks: size += len(chunk)