hgext/narrow/narrowcommands.py
changeset 39524 294c571490f0
parent 39465 4062bbb1d10f
child 39528 2862e9b868c5
--- a/hgext/narrow/narrowcommands.py	Mon Sep 10 15:55:14 2018 +0300
+++ b/hgext/narrow/narrowcommands.py	Mon Sep 10 16:29:22 2018 +0300
@@ -180,14 +180,17 @@
     kwargs['oldexcludepats'] = exclude
     kwargs['includepats'] = include
     kwargs['excludepats'] = exclude
-    kwargs['known'] = [node.hex(ctx.node()) for ctx in
-                       repo.set('::%ln', pullop.common)
-                       if ctx.node() != node.nullid]
-    if not kwargs['known']:
-        # Mercurial serialized an empty list as '' and deserializes it as
-        # [''], so delete it instead to avoid handling the empty string on the
-        # server.
-        del kwargs['known']
+    # calculate known nodes only in ellipses cases because in non-ellipses cases
+    # we have all the nodes
+    if narrowbundle2.ELLIPSESCAP in pullop.remote.capabilities():
+        kwargs['known'] = [node.hex(ctx.node()) for ctx in
+                           repo.set('::%ln', pullop.common)
+                           if ctx.node() != node.nullid]
+        if not kwargs['known']:
+            # Mercurial serializes an empty list as '' and deserializes it as
+            # [''], so delete it instead to avoid handling the empty string on
+            # the server.
+            del kwargs['known']
 
 extensions.wrapfunction(exchange,'_pullbundle2extraprepare',
                         pullbundle2extraprepare)