setdiscovery: don't use dagutil to compute heads
authorGregory Szorc <gregory.szorc@gmail.com>
Thu, 16 Aug 2018 20:23:10 +0000
changeset 39165 860e83cd97de
parent 39164 01ab7f656a10
child 39166 484c9fe570a7
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
mercurial/setdiscovery.py
--- a/mercurial/setdiscovery.py	Thu Aug 16 20:11:45 2018 +0000
+++ b/mercurial/setdiscovery.py	Thu Aug 16 20:23:10 2018 +0000
@@ -144,16 +144,17 @@
     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)