Comments
Patch
@@ -72,12 +72,10 @@ def _updatesample(dag, nodes, sample, al
if not nodes or p in nodes:
dist.setdefault(p, d + 1)
visit.append(p)
def _setupsample(dag, nodes, size):
- if len(nodes) <= size:
- return set(nodes), None, 0
always = dag.headsetofconnecteds(nodes)
desiredlen = size - len(always)
if desiredlen <= 0:
# This could be bad if there are very many heads, all unknown to the
# server. We're counting on long request support here.
@@ -203,12 +201,15 @@ def findcommonheads(ui, local, remote,
else:
# use even cheaper initial sample
ui.debug("taking quick initial sample\n")
samplefunc = _takequicksample
targetsize = initialsamplesize
- sample = samplefunc(dag, undecided, targetsize)
- sample = _limitsample(sample, targetsize)
+ if len(undecided) < targetsize:
+ sample = list(undecided)
+ else:
+ sample = samplefunc(dag, undecided, targetsize)
+ sample = _limitsample(sample, targetsize)
roundtrips += 1
ui.progress(_('searching'), roundtrips, unit=_('queries'))
ui.debug("query %i; still undecided: %i, sample size is: %i\n"
% (roundtrips, len(undecided), len(sample)))