diff --git a/mercurial/setdiscovery.py b/mercurial/setdiscovery.py index 754f389b87f297527ef03215ef3b02bd063d7886_bWVyY3VyaWFsL3NldGRpc2NvdmVyeS5weQ==..abce899c985fab227bd03f8d0f39b6143a8c8dab_bWVyY3VyaWFsL3NldGRpc2NvdmVyeS5weQ== 100644 --- a/mercurial/setdiscovery.py +++ b/mercurial/setdiscovery.py @@ -92,10 +92,10 @@ dist.setdefault(p, d + 1) visit.append(p) -def _takequicksample(repo, dag, revs, size): +def _takequicksample(repo, dag, headrevs, revs, size): """takes a quick sample of size <size> It is meant for initial sampling and focuses on querying heads and close ancestors of heads. :dag: a dag object @@ -96,9 +96,10 @@ """takes a quick sample of size <size> It is meant for initial sampling and focuses on querying heads and close ancestors of heads. :dag: a dag object + :headrevs: set of head revisions in local DAG to consider :revs: set of revs to discover :size: the maximum size of the sample""" sample = set(repo.revs('heads(%ld)', revs)) @@ -106,6 +107,6 @@ if len(sample) >= size: return _limitsample(sample, size) - _updatesample(dag, None, dag.heads(), sample, quicksamplesize=size) + _updatesample(dag, None, headrevs, sample, quicksamplesize=size) return sample @@ -110,6 +111,6 @@ return sample -def _takefullsample(repo, dag, revs, size): +def _takefullsample(repo, dag, headrevs, revs, size): sample = set(repo.revs('heads(%ld)', revs)) # update from heads @@ -243,7 +244,7 @@ if len(undecided) < targetsize: sample = list(undecided) else: - sample = samplefunc(local, dag, undecided, targetsize) + sample = samplefunc(local, dag, ownheads, undecided, targetsize) roundtrips += 1 progress.update(roundtrips)