--- a/mercurial/setdiscovery.py Thu May 16 16:22:20 2019 +0200
+++ b/mercurial/setdiscovery.py Wed Jun 05 11:23:25 2019 +0200
@@ -242,13 +242,13 @@
# update from roots
revsroots = set(repo.revs('roots(%ld)', revs))
- if not self._respectsize:
- size = max(size, len(revsroots))
-
childrenrevs = self._childrengetter()
-
_updatesample(revs, revsroots, sample, childrenrevs)
assert sample
+
+ if not self._respectsize:
+ size = max(size, min(len(revsroots), len(revsheads)))
+
sample = _limitsample(sample, size)
if len(sample) < size:
more = size - len(sample)