mercurial/setdiscovery.py
changeset 39165 860e83cd97de
parent 39161 858a12846f4f
child 39166 484c9fe570a7
--- 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)