--- a/mercurial/setdiscovery.py Wed Mar 06 15:43:52 2019 -0800
+++ b/mercurial/setdiscovery.py Thu Mar 07 01:28:24 2019 +0100
@@ -175,6 +175,10 @@
def _childrengetter(self):
if self._childrenmap is not None:
+ # During discovery, the `undecided` set keep shrinking.
+ # Therefore, the map computed for an iteration N will be
+ # valid for iteration N+1. Instead of computing the same
+ # data over and over we cached it the first time.
return self._childrenmap.__getitem__
# _updatesample() essentially does interaction over revisions to look