# HG changeset patch # User Gregory Szorc # Date 2018-08-16 20:23:10 # Node ID 860e83cd97deab88584f25cce6e1a5aa54b737e4 # Parent 01ab7f656a1041b2562c577c772f3e8b9b1fc40a setdiscovery: don't use dagutil to compute heads This is a relatively trivial operation to perform. We don't need to use dagutil. This brings us one step closer to eliminating dagutil. We still need to populate the heads on revlogdag because later functionality relies on it. Differential Revision: https://phab.mercurial-scm.org/D4310 diff --git a/mercurial/setdiscovery.py b/mercurial/setdiscovery.py --- a/mercurial/setdiscovery.py +++ b/mercurial/setdiscovery.py @@ -144,16 +144,17 @@ def findcommonheads(ui, local, remote, cl = local.changelog clnode = cl.node clrev = cl.rev - localsubset = None if ancestorsof is not None: - localsubset = [clrev(n) for n in ancestorsof] - dag = dagutil.revlogdag(cl, localsubset=localsubset) + ownheads = [clrev(n) for n in ancestorsof] + else: + ownheads = [rev for rev in cl.headrevs() if rev != nullrev] + + dag = dagutil.revlogdag(cl, localsubset=ownheads) # early exit if we know all the specified remote heads already ui.debug("query 1; heads\n") roundtrips += 1 - ownheads = dag.heads() sample = _limitsample(ownheads, initialsamplesize) # indices between sample and externalized version must match sample = list(sample)