changeset 39545:2862e9b868c5

narrow: check "narrow" wire protocol capability, not bundle2 capability It seems like the new "narrow" wire protocol capability should be what determines if the server supports the "narrow" and "{,old}{in,ex}cludepats" arguments to the getbundle request. Differential Revision: https://phab.mercurial-scm.org/D4527
author Martin von Zweigbergk <martinvonz@google.com>
date Tue, 11 Sep 2018 11:03:15 -0700
parents 9db856446298
children e82da0fcc7c5
files hgext/narrow/narrowcommands.py hgext/narrow/narrowrepo.py
diffstat 2 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/narrow/narrowcommands.py	Tue Aug 21 16:11:17 2018 +0300
+++ b/hgext/narrow/narrowcommands.py	Tue Sep 11 11:03:15 2018 -0700
@@ -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
--- a/hgext/narrow/narrowrepo.py	Tue Aug 21 16:11:17 2018 +0300
+++ b/hgext/narrow/narrowrepo.py	Tue Sep 11 11:03:15 2018 -0700
@@ -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