diff -r a87ca1d7e61d -r 5f9d057ba28c mercurial/changegroup.py --- a/mercurial/changegroup.py Mon Feb 11 16:34:48 2019 +0300 +++ b/mercurial/changegroup.py Thu Jan 31 20:11:16 2019 +0300 @@ -1073,6 +1073,11 @@ # because of narrow clones). Do this even for the root # directory (tree=='') prunednodes = [] + elif not self._ellipses: + # In non-ellipses case and large repositories, it is better to + # prevent calling of store.rev and store.linkrev on a lot of + # nodes as compared to sending some extra data + prunednodes = nodes.copy() else: # Avoid sending any manifest nodes we can prove the # client already has by checking linkrevs. See the