diff --git a/hgext/narrow/narrowcommands.py b/hgext/narrow/narrowcommands.py --- a/hgext/narrow/narrowcommands.py +++ b/hgext/narrow/narrowcommands.py @@ -171,7 +171,7 @@ if repository.NARROW_REQUIREMENT not in repo.requirements: return orig(pullop, kwargs) - if narrowbundle2.NARROWCAP not in pullop.remotebundle2caps: + if narrowbundle2.NARROWCAP not in pullop.remote.capabilities(): raise error.Abort(_("server doesn't support narrow clones")) orig(pullop, kwargs) kwargs['narrow'] = True diff --git a/hgext/narrow/narrowrepo.py b/hgext/narrow/narrowrepo.py --- a/hgext/narrow/narrowrepo.py +++ b/hgext/narrow/narrowrepo.py @@ -8,6 +8,7 @@ from __future__ import absolute_import from . import ( + narrowbundle2, narrowdirstate, narrowrevlog, ) @@ -26,4 +27,10 @@ dirstate = super(narrowrepository, self)._makedirstate() return narrowdirstate.wrapdirstate(self, dirstate) + def peer(self): + peer = super(narrowrepository, self).peer() + peer._caps.add(narrowbundle2.NARROWCAP) + peer._caps.add(narrowbundle2.ELLIPSESCAP) + return peer + repo.__class__ = narrowrepository