--- 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)