# HG changeset patch # User Durham Goode # Date 1441670915 25200 # Node ID 327d09f0b5d48f4aaa02e13966dec84a15594c61 # Parent bf1b24785f13c91c32a95c762ce586833586a8c9 exchange: allow fallbackheads to use lazy set behavior The common ancestor set implementation was made lazy a couple years ago, but this piece of code still required processing the entire repo by putting set() around the lazy set. The code was introduced in 5653f2d166ea, a year before the lazy ancestor set was added. Dropping the set() shaves 3.5 seconds off of 'push -r' in repos with hundreds of thousands of commits. diff -r bf1b24785f13 -r 327d09f0b5d4 mercurial/exchange.py --- a/mercurial/exchange.py Sat Aug 22 16:38:51 2015 -0700 +++ b/mercurial/exchange.py Mon Sep 07 17:08:35 2015 -0700 @@ -147,7 +147,7 @@ # # We can pick: # * missingheads part of common (::commonheads) - common = set(self.outgoing.common) + common = self.outgoing.common nm = self.repo.changelog.nodemap cheads = [node for node in self.revs if nm[node] in common] # and