mercurial/exchange.py
changeset 40492 440f5b65be57
parent 40352 dd816e5391f6
child 40686 9b8d1ad851f8
--- a/mercurial/exchange.py	Thu Nov 01 16:51:21 2018 -0700
+++ b/mercurial/exchange.py	Tue Oct 16 17:53:26 2018 +0300
@@ -40,6 +40,7 @@
     streamclone,
     url as urlmod,
     util,
+    wireprototypes,
 )
 from .utils import (
     stringutil,
@@ -1633,6 +1634,13 @@
     kwargs['common'] = pullop.common
     kwargs['heads'] = pullop.heads or pullop.rheads
 
+    # check server supports narrow and then adding includepats and excludepats
+    servernarrow = pullop.remote.capable(wireprototypes.NARROWCAP)
+    if servernarrow and pullop.includepats:
+        kwargs['includepats'] = pullop.includepats
+    if servernarrow and pullop.excludepats:
+        kwargs['excludepats'] = pullop.excludepats
+
     if streaming:
         kwargs['cg'] = False
         kwargs['stream'] = True